From 9c930b2198079f862a16b5014afe8ab7bf9dc99f Mon Sep 17 00:00:00 2001 From: Haze <709547807@qq.com> Date: Tue, 28 Apr 2026 15:04:19 +0800 Subject: [PATCH] feat: upgrade openclaw to 4.26 (#899) Co-authored-by: paisley <8197966+su8su@users.noreply.github.com> --- electron-builder.yml | 8 +- electron/gateway/config-sync.ts | 56 +- electron/gateway/process-launcher.ts | 5 +- electron/gateway/supervisor.ts | 10 +- electron/utils/channel-config.ts | 26 +- electron/utils/openclaw-auth.ts | 39 +- electron/utils/openclaw-doctor.ts | 10 +- electron/utils/openclaw-sdk.ts | 7 +- electron/utils/paths.ts | 244 +- electron/utils/plugin-install.ts | 21 +- electron/utils/wechat-login.ts | 27 +- electron/utils/whatsapp-login.ts | 59 +- package.json | 32 +- pnpm-lock.yaml | 3360 ++++++++++---------------- resources/cli/posix/openclaw | 19 +- resources/cli/win32/openclaw | 15 +- resources/cli/win32/openclaw.cmd | 7 +- scripts/after-pack.cjs | 192 +- scripts/bundle-openclaw-plugins.mjs | 17 +- scripts/bundle-openclaw.mjs | 166 +- tests/unit/channel-config.test.ts | 75 + tests/unit/openclaw-auth.test.ts | 33 + tests/unit/openclaw-doctor.test.ts | 3 + 23 files changed, 2190 insertions(+), 2241 deletions(-) diff --git a/electron-builder.yml b/electron-builder.yml index f80ba20..bf6ae83 100644 --- a/electron-builder.yml +++ b/electron-builder.yml @@ -29,9 +29,11 @@ extraResources: # Pre-bundled third-party skills (full directories, not only SKILL.md) - from: build/preinstalled-skills/ to: resources/preinstalled-skills/ - # NOTE: OpenClaw plugin mirrors (dingtalk, etc.) are bundled by the - # afterPack hook (after-pack.cjs) directly from node_modules, so they - # don't need an extraResources entry here. + # Pre-bundled third-party OpenClaw plugin mirrors (DingTalk, Lark/Feishu, etc.). + # afterPack still has a fallback bundler, but the generated mirrors must be an + # explicit resource so installers consistently include them. + - from: build/openclaw-plugins/ + to: openclaw-plugins/ afterPack: ./scripts/after-pack.cjs diff --git a/electron/gateway/config-sync.ts b/electron/gateway/config-sync.ts index f7b0d2c..679b3dd 100644 --- a/electron/gateway/config-sync.ts +++ b/electron/gateway/config-sync.ts @@ -18,7 +18,7 @@ function fsPath(filePath: string): string { import { getAllSettings } from '../utils/store'; import { getApiKey, getDefaultProvider, getProvider } from '../utils/secure-storage'; import { getProviderEnvVar, getKeyableProviderTypes } from '../utils/provider-registry'; -import { getOpenClawDir, getOpenClawEntryPath, isOpenClawPresent } from '../utils/paths'; +import { getOpenClawPluginStageDir, getOpenClawRuntimeDir, getOpenClawRuntimeEntryPath, isOpenClawPresent } from '../utils/paths'; import { getUvMirrorEnv } from '../utils/uv-env'; import { cleanupDanglingWeChatPluginState, listConfiguredChannelsFromConfig, readOpenClawConfig } from '../utils/channel-config'; import { sanitizeOpenClawConfig, batchSyncConfigFields } from '../utils/openclaw-auth'; @@ -34,6 +34,7 @@ export interface GatewayLaunchContext { appSettings: Awaited>; openclawDir: string; entryScript: string; + pluginStageDir: string | null; gatewayArgs: string[]; forkEnv: Record; mode: 'dev' | 'packaged'; @@ -85,6 +86,25 @@ function readPluginVersion(pkgJsonPath: string): string | null { } } +function collectPluginRuntimeDeps(pluginDir: string): string[] { + try { + const raw = readFileSync(fsPath(join(pluginDir, 'package.json')), 'utf-8'); + const pkg = JSON.parse(raw) as { dependencies?: Record; optionalDependencies?: Record }; + return Object.keys({ + ...pkg.dependencies, + ...pkg.optionalDependencies, + }); + } catch { + return []; + } +} + +function hasPluginRuntimeDeps(pluginDir: string): boolean { + const deps = collectPluginRuntimeDeps(pluginDir); + if (deps.length === 0) return true; + return deps.every((depName) => existsSync(fsPath(join(pluginDir, 'node_modules', ...depName.split('/'), 'package.json')))); +} + function buildBundledPluginSources(pluginDirName: string): string[] { return app.isPackaged ? [ @@ -121,7 +141,7 @@ function ensureConfiguredPluginsUpgraded(configuredChannels: string[]): void { if (bundledDir) { const sourceVersion = readPluginVersion(join(bundledDir, 'package.json')); // Install or upgrade if version differs or plugin not installed - if (!isInstalled || (sourceVersion && installedVersion && sourceVersion !== installedVersion)) { + if (!isInstalled || !hasPluginRuntimeDeps(targetDir) || (sourceVersion && installedVersion && sourceVersion !== installedVersion)) { logger.info(`[plugin] ${isInstalled ? 'Auto-upgrading' : 'Installing'} ${channelType} plugin${isInstalled ? `: ${installedVersion} → ${sourceVersion}` : `: ${sourceVersion}`} (bundled)`); try { mkdirSync(fsPath(join(homedir(), '.openclaw', 'extensions')), { recursive: true }); @@ -223,9 +243,30 @@ function ensureExtensionDepsResolvable(openclawDir: string): void { const topNM = join(openclawDir, 'node_modules'); let linkedCount = 0; + // Use 'junction' on Windows (no admin required); on other platforms the + // type argument is ignored by Node so 'junction' is harmless. + const symlinkType = process.platform === 'win32' ? 'junction' : 'dir'; + try { if (!existsSync(extDir)) return; + // Create openclaw self-reference so built-in extension runtime files can + // resolve bare `import 'openclaw/plugin-sdk/...'` via native ESM. + // Extensions ship their own package.json (e.g. "@openclaw/codex"), + // creating a separate package scope that prevents Node's ESM + // package-self-reference from reaching the openclaw root package. + // Only needed in packaged mode — in dev pnpm already provides resolution. + if (app.isPackaged) { + const selfRef = join(topNM, 'openclaw'); + if (!existsSync(selfRef)) { + try { + mkdirSync(topNM, { recursive: true }); + symlinkSync(openclawDir, selfRef, symlinkType); + linkedCount++; + } catch { /* skip on error — non-fatal */ } + } + } + for (const ext of readdirSync(extDir, { withFileTypes: true })) { if (!ext.isDirectory()) continue; const extNM = join(extDir, ext.name, 'node_modules'); @@ -245,7 +286,7 @@ function ensureExtensionDepsResolvable(openclawDir: string): void { if (existsSync(dest)) continue; try { mkdirSync(join(topNM, pkg.name), { recursive: true }); - symlinkSync(join(scopeDir, sub.name), dest); + symlinkSync(join(scopeDir, sub.name), dest, symlinkType); linkedCount++; } catch { /* skip on error — non-fatal */ } } @@ -254,7 +295,7 @@ function ensureExtensionDepsResolvable(openclawDir: string): void { if (existsSync(dest)) continue; try { mkdirSync(topNM, { recursive: true }); - symlinkSync(join(extNM, pkg.name), dest); + symlinkSync(join(extNM, pkg.name), dest, symlinkType); linkedCount++; } catch { /* skip on error — non-fatal */ } } @@ -394,8 +435,9 @@ async function resolveChannelStartupPolicy(): Promise<{ } export async function prepareGatewayLaunchContext(port: number): Promise { - const openclawDir = getOpenClawDir(); - const entryScript = getOpenClawEntryPath(); + const openclawDir = getOpenClawRuntimeDir(); + const entryScript = getOpenClawRuntimeEntryPath(); + const pluginStageDir = getOpenClawPluginStageDir(openclawDir); if (!isOpenClawPresent()) { throw new Error(`OpenClaw package not found at: ${openclawDir}`); @@ -442,6 +484,7 @@ export async function prepareGatewayLaunchContext(port: number): Promise { - const openclawDir = getOpenClawDir(); - const entryScript = getOpenClawEntryPath(); + const openclawDir = getOpenClawRuntimeDir(); + const entryScript = getOpenClawRuntimeEntryPath(); + const pluginStageDir = getOpenClawPluginStageDir(openclawDir); if (!existsSync(entryScript)) { logger.error(`Cannot run OpenClaw doctor repair: entry script not found at ${entryScript}`); return false; @@ -285,7 +286,7 @@ export async function runOpenClawDoctorRepair(): Promise { const uvEnv = await getUvMirrorEnv(); const doctorArgs = ['doctor', '--fix', '--yes', '--non-interactive']; logger.info( - `Running OpenClaw doctor repair (entry="${entryScript}", args="${doctorArgs.join(' ')}", cwd="${openclawDir}", bundledBin=${binPathExists ? 'yes' : 'no'})`, + `Running OpenClaw doctor repair (entry="${entryScript}", args="${doctorArgs.join(' ')}", cwd="${openclawDir}", stage="${pluginStageDir || '-'}", bundledBin=${binPathExists ? 'yes' : 'no'})`, ); return await new Promise((resolve) => { @@ -293,6 +294,7 @@ export async function runOpenClawDoctorRepair(): Promise { ...baseEnvPatched, ...uvEnv, OPENCLAW_NO_RESPAWN: '1', + ...(pluginStageDir ? { OPENCLAW_PLUGIN_STAGE_DIR: pluginStageDir } : {}), }; const child = utilityProcess.fork(entryScript, doctorArgs, { diff --git a/electron/utils/channel-config.ts b/electron/utils/channel-config.ts index 0870783..24a4801 100644 --- a/electron/utils/channel-config.ts +++ b/electron/utils/channel-config.ts @@ -8,7 +8,7 @@ import { access, mkdir, readFile, writeFile, readdir, stat, rm } from 'fs/promis import { constants } from 'fs'; import { join } from 'path'; import { homedir } from 'os'; -import { getOpenClawResolvedDir } from './paths'; +import { getOpenClawPluginStageDir, getOpenClawRuntimeDir } from './paths'; import * as logger from './logger'; import { proxyAwareFetch } from './proxy-fetch'; import { withConfigLock } from './config-mutex'; @@ -562,6 +562,7 @@ function transformChannelConfig( transformedConfig = { ...restConfig }; transformedConfig.groupPolicy = 'allowlist'; + transformedConfig.dmPolicy = transformedConfig.dmPolicy ?? existingAccountConfig.dmPolicy ?? 'disabled'; transformedConfig.dm = { enabled: false }; transformedConfig.retry = { attempts: 3, @@ -605,6 +606,21 @@ function transformChannelConfig( transformedConfig.allowFrom = users; } } + + const allowFrom = Array.isArray(transformedConfig.allowFrom) + ? transformedConfig.allowFrom + : Array.isArray(existingAccountConfig.allowFrom) + ? existingAccountConfig.allowFrom + : []; + const hasWildcardAccess = allowFrom.includes('*'); + transformedConfig.dmPolicy = + transformedConfig.dmPolicy + ?? existingAccountConfig.dmPolicy + ?? (hasWildcardAccess ? 'open' : 'allowlist'); + transformedConfig.groupPolicy = + transformedConfig.groupPolicy + ?? existingAccountConfig.groupPolicy + ?? (hasWildcardAccess ? 'open' : 'allowlist'); } if (channelType === 'feishu' || channelType === 'wecom') { @@ -1512,7 +1528,8 @@ export async function validateChannelConfig(channelType: string): Promise): Record { + const allowedOrigins = Array.isArray(controlUi.allowedOrigins) + ? (controlUi.allowedOrigins as unknown[]).filter((value): value is string => typeof value === 'string') + : []; + const nextAllowedOrigins = [...allowedOrigins]; + + for (const origin of PACKAGED_CONTROL_UI_ALLOWED_ORIGINS) { + if (!nextAllowedOrigins.includes(origin)) { + nextAllowedOrigins.push(origin); + } + } + + return { + ...controlUi, + allowedOrigins: nextAllowedOrigins, + }; +} + function discoverBundledPluginManifests(): BundledPluginManifest[] { if (_bundledPluginManifestCache) return _bundledPluginManifestCache; @@ -1322,20 +1341,14 @@ export async function syncGatewayTokenToConfig(token: string): Promise { auth.token = token; gateway.auth = auth; - // Packaged ClawX loads the renderer from file://, so the gateway must allow - // that origin for the chat WebSocket handshake. + // Packaged ClawX loads the renderer from file://. OpenClaw's URL origin + // normalization maps that to "null", so keep both forms allowlisted. const controlUi = ( gateway.controlUi && typeof gateway.controlUi === 'object' ? { ...(gateway.controlUi as Record) } : {} ) as Record; - const allowedOrigins = Array.isArray(controlUi.allowedOrigins) - ? (controlUi.allowedOrigins as unknown[]).filter((value): value is string => typeof value === 'string') - : []; - if (!allowedOrigins.includes('file://')) { - controlUi.allowedOrigins = [...allowedOrigins, 'file://']; - } - gateway.controlUi = controlUi; + gateway.controlUi = ensurePackagedControlUiAllowedOrigins(controlUi); if (!gateway.mode) gateway.mode = 'local'; config.gateway = gateway; @@ -1462,13 +1475,7 @@ export async function batchSyncConfigFields(token: string): Promise { ? { ...(gateway.controlUi as Record) } : {} ) as Record; - const allowedOrigins = Array.isArray(controlUi.allowedOrigins) - ? (controlUi.allowedOrigins as unknown[]).filter((v): v is string => typeof v === 'string') - : []; - if (!allowedOrigins.includes('file://')) { - controlUi.allowedOrigins = [...allowedOrigins, 'file://']; - } - gateway.controlUi = controlUi; + gateway.controlUi = ensurePackagedControlUiAllowedOrigins(controlUi); if (!gateway.mode) gateway.mode = 'local'; config.gateway = gateway; diff --git a/electron/utils/openclaw-doctor.ts b/electron/utils/openclaw-doctor.ts index a5bd638..d7bee9f 100644 --- a/electron/utils/openclaw-doctor.ts +++ b/electron/utils/openclaw-doctor.ts @@ -1,7 +1,7 @@ import { app, utilityProcess } from 'electron'; import { existsSync } from 'node:fs'; import path from 'node:path'; -import { getOpenClawDir, getOpenClawEntryPath } from './paths'; +import { getOpenClawPluginStageDir, getOpenClawRuntimeDir, getOpenClawRuntimeEntryPath } from './paths'; import { logger } from './logger'; import { getUvMirrorEnv } from './uv-env'; @@ -69,8 +69,9 @@ async function runDoctorCommandWithArgs( mode: OpenClawDoctorMode, args: string[], ): Promise { - const openclawDir = getOpenClawDir(); - const entryScript = getOpenClawEntryPath(); + const openclawDir = getOpenClawRuntimeDir(); + const entryScript = getOpenClawRuntimeEntryPath(); + const pluginStageDir = getOpenClawPluginStageDir(openclawDir); const command = `openclaw ${args.join(' ')}`; const startedAt = Date.now(); @@ -98,7 +99,7 @@ async function runDoctorCommandWithArgs( const uvEnv = await getUvMirrorEnv(); logger.info( - `Running OpenClaw doctor (mode=${mode}, entry="${entryScript}", args="${args.join(' ')}", cwd="${openclawDir}", bundledBin=${binPathExists ? 'yes' : 'no'})`, + `Running OpenClaw doctor (mode=${mode}, entry="${entryScript}", args="${args.join(' ')}", cwd="${openclawDir}", stage="${pluginStageDir || '-'}", bundledBin=${binPathExists ? 'yes' : 'no'})`, ); return await new Promise((resolve) => { @@ -110,6 +111,7 @@ async function runDoctorCommandWithArgs( ...uvEnv, PATH: finalPath, OPENCLAW_NO_RESPAWN: '1', + ...(pluginStageDir ? { OPENCLAW_PLUGIN_STAGE_DIR: pluginStageDir } : {}), } as NodeJS.ProcessEnv, }); diff --git a/electron/utils/openclaw-sdk.ts b/electron/utils/openclaw-sdk.ts index ae3d44d..351968c 100644 --- a/electron/utils/openclaw-sdk.ts +++ b/electron/utils/openclaw-sdk.ts @@ -1,9 +1,10 @@ /** * Dynamic imports for openclaw plugin-sdk subpath exports. * - * openclaw is NOT in the asar's node_modules — it lives at resources/openclaw/ - * (extraResources). Static `import ... from 'openclaw/plugin-sdk/...'` would - * produce a runtime require() that fails inside the asar. + * openclaw is NOT in the asar's node_modules — packaged builds stage it under + * resources/openclaw-runtime/. Static + * `import ... from 'openclaw/plugin-sdk/...'` would produce a runtime require() + * that fails inside the asar. * * Instead, we create a require context from the openclaw directory itself. * Node.js package self-referencing allows a package to require its own exports diff --git a/electron/utils/paths.ts b/electron/utils/paths.ts index 428fc8c..c312796 100644 --- a/electron/utils/paths.ts +++ b/electron/utils/paths.ts @@ -3,11 +3,30 @@ * Cross-platform path resolution helpers */ import { createRequire } from 'node:module'; -import { join } from 'path'; +import { createHash } from 'node:crypto'; +import { dirname, join } from 'path'; import { homedir } from 'os'; -import { existsSync, mkdirSync, readFileSync, realpathSync } from 'fs'; +import { + cpSync, + accessSync, + constants, + existsSync, + mkdirSync, + readFileSync, + realpathSync, + readdirSync, + renameSync, + rmSync, + statSync, + writeFileSync, +} from 'fs'; const require = createRequire(import.meta.url); +const OPENCLAW_RUNTIME_MANIFEST = 'clawx-runtime-deps.json'; +const OPENCLAW_RUNTIME_READY_MARKER = '.clawx-runtime-ready.json'; +const OPENCLAW_RUNTIME_KEEP_COUNT = 2; + +let materializedOpenClawDir: string | null = null; type ElectronAppLike = Pick; @@ -91,6 +110,185 @@ export function ensureDir(dir: string): void { } } +function toFsPath(filePath: string): string { + if (process.platform !== 'win32') return filePath; + if (!filePath || filePath.startsWith('\\\\?\\')) return filePath; + const windowsPath = filePath.replace(/\//g, '\\'); + if (!windowsPath.match(/^[a-zA-Z]:\\/u) && !windowsPath.startsWith('\\\\')) return windowsPath; + if (windowsPath.startsWith('\\\\')) return `\\\\?\\UNC\\${windowsPath.slice(2)}`; + return `\\\\?\\${windowsPath}`; +} + +function readJsonFile>(filePath: string): T | null { + try { + return JSON.parse(readFileSync(toFsPath(filePath), 'utf-8')) as T; + } catch { + return null; + } +} + +function hashOpenClawRuntime(sourceDir: string): { key: string; version: string; manifestHash: string } { + const packageJsonPath = join(sourceDir, 'package.json'); + const manifestPath = join(sourceDir, OPENCLAW_RUNTIME_MANIFEST); + const packageJsonRaw = existsSync(toFsPath(packageJsonPath)) ? readFileSync(toFsPath(packageJsonPath), 'utf-8') : '{}'; + const manifestRaw = existsSync(toFsPath(manifestPath)) ? readFileSync(toFsPath(manifestPath), 'utf-8') : ''; + const packageJson = JSON.parse(packageJsonRaw) as { version?: string }; + const version = packageJson.version || 'unknown'; + const manifestHash = createHash('sha256') + .update(packageJsonRaw) + .update('\0') + .update(manifestRaw) + .digest('hex') + .slice(0, 12); + const safeVersion = version.replace(/[^a-zA-Z0-9._-]/gu, '_'); + return { + key: `openclaw-${safeVersion}-${manifestHash}`, + version, + manifestHash, + }; +} + +function isMaterializedRuntimeReady(targetDir: string, version: string, manifestHash: string): boolean { + const marker = readJsonFile<{ version?: unknown; manifestHash?: unknown }>( + join(targetDir, OPENCLAW_RUNTIME_READY_MARKER), + ); + if (marker?.version !== version || marker?.manifestHash !== manifestHash) return false; + return existsSync(toFsPath(join(targetDir, 'openclaw.mjs'))) + && existsSync(toFsPath(join(targetDir, 'package.json'))) + && existsSync(toFsPath(join(targetDir, 'dist'))) + && existsSync(toFsPath(join(targetDir, 'node_modules'))); +} + +function isPackagedRuntimeReady(targetDir: string): boolean { + const marker = readJsonFile<{ version?: unknown; manifestHash?: unknown }>( + join(targetDir, OPENCLAW_RUNTIME_READY_MARKER), + ); + if (typeof marker?.version !== 'string' || typeof marker?.manifestHash !== 'string') return false; + return existsSync(toFsPath(join(targetDir, 'openclaw.mjs'))) + && existsSync(toFsPath(join(targetDir, 'package.json'))) + && existsSync(toFsPath(join(targetDir, 'dist'))) + && existsSync(toFsPath(join(targetDir, 'node_modules'))); +} + +function isOpenClawRuntimeWritable(runtimeDir: string): boolean { + try { + accessSync(toFsPath(runtimeDir), constants.W_OK); + accessSync(toFsPath(join(runtimeDir, 'dist', 'extensions')), constants.W_OK); + return true; + } catch { + return false; + } +} + +function cleanupOldOpenClawRuntimes(runtimeRoot: string, keepKey: string): void { + let entries; + try { + entries = readdirSync(toFsPath(runtimeRoot), { withFileTypes: true }) + .filter((entry) => entry.isDirectory() && entry.name.startsWith('openclaw-')) + .map((entry) => { + const fullPath = join(runtimeRoot, entry.name); + let mtimeMs = 0; + try { + mtimeMs = statSync(toFsPath(fullPath)).mtimeMs; + } catch { + // Keep unknown entries until a later cleanup pass. + } + return { name: entry.name, fullPath, mtimeMs }; + }) + .sort((left, right) => right.mtimeMs - left.mtimeMs); + } catch { + return; + } + + const keep = new Set(entries.slice(0, OPENCLAW_RUNTIME_KEEP_COUNT).map((entry) => entry.name)); + keep.add(keepKey); + for (const entry of entries) { + if (keep.has(entry.name)) continue; + try { + rmSync(toFsPath(entry.fullPath), { recursive: true, force: true }); + } catch { + // Cleanup is best-effort; stale runtimes are harmless. + } + } +} + +function getPackagedOpenClawSourceDir(): string { + return join(process.resourcesPath, 'openclaw'); +} + +function getPackagedOpenClawRuntimeRoot(): string { + return join(process.resourcesPath, 'openclaw-runtime'); +} + +function findPackagedOpenClawRuntimeDir(): string | null { + const runtimeRoot = getPackagedOpenClawRuntimeRoot(); + let entries; + try { + entries = readdirSync(toFsPath(runtimeRoot), { withFileTypes: true }); + } catch { + return null; + } + + const candidates = entries + .filter((entry) => entry.isDirectory() && entry.name.startsWith('openclaw-')) + .map((entry) => join(runtimeRoot, entry.name)) + .filter((candidate) => isPackagedRuntimeReady(candidate)) + .sort((left, right) => right.localeCompare(left)); + return candidates[0] ?? null; +} + +function getPackagedOpenClawFallbackSourceDir(): string { + return findPackagedOpenClawRuntimeDir() ?? getPackagedOpenClawSourceDir(); +} + +function materializePackagedOpenClawRuntime(): string { + if (materializedOpenClawDir) return materializedOpenClawDir; + + const sourceDir = getPackagedOpenClawFallbackSourceDir(); + if (!existsSync(toFsPath(sourceDir)) || !existsSync(toFsPath(join(sourceDir, 'package.json')))) { + return sourceDir; + } + const { key, version, manifestHash } = hashOpenClawRuntime(sourceDir); + const runtimeRoot = join(getElectronApp().getPath('userData'), 'openclaw-runtime'); + const targetDir = join(runtimeRoot, key); + + if (isMaterializedRuntimeReady(targetDir, version, manifestHash)) { + materializedOpenClawDir = targetDir; + cleanupOldOpenClawRuntimes(runtimeRoot, key); + return targetDir; + } + + mkdirSync(toFsPath(runtimeRoot), { recursive: true }); + const tempDir = join(runtimeRoot, `.tmp-${key}-${process.pid}-${Date.now()}`); + rmSync(toFsPath(tempDir), { recursive: true, force: true }); + try { + cpSync(toFsPath(sourceDir), toFsPath(tempDir), { + recursive: true, + dereference: true, + force: true, + }); + writeFileSync( + toFsPath(join(tempDir, OPENCLAW_RUNTIME_READY_MARKER)), + `${JSON.stringify({ + version, + manifestHash, + source: sourceDir, + createdAt: new Date().toISOString(), + }, null, 2)}\n`, + 'utf-8', + ); + rmSync(toFsPath(targetDir), { recursive: true, force: true }); + renameSync(toFsPath(tempDir), toFsPath(targetDir)); + } catch (error) { + rmSync(toFsPath(tempDir), { recursive: true, force: true }); + throw error; + } + + materializedOpenClawDir = targetDir; + cleanupOldOpenClawRuntimes(runtimeRoot, key); + return targetDir; +} + /** * Get resources directory (for bundled assets) */ @@ -110,17 +308,35 @@ export function getPreloadPath(): string { /** * Get OpenClaw package directory - * - Production (packaged): from resources/openclaw (copied by electron-builder extraResources) + * - Production (packaged): from resources/openclaw-runtime/openclaw-* (staged by afterPack) * - Development: from node_modules/openclaw */ export function getOpenClawDir(): string { if (getElectronApp().isPackaged) { - return join(process.resourcesPath, 'openclaw'); + return getPackagedOpenClawFallbackSourceDir(); } // Development: use node_modules/openclaw return join(__dirname, '../../node_modules/openclaw'); } +/** + * Get the OpenClaw runtime directory used for spawned OpenClaw processes. + * + * In packaged builds, this prefers the afterPack-staged resources/openclaw-runtime + * directory. If the app was installed somewhere non-writable, it falls back to a + * userData copy so OpenClaw's runtime-deps checks can still create lock files. + */ +export function getOpenClawRuntimeDir(): string { + if (getElectronApp().isPackaged) { + const packagedRuntimeDir = findPackagedOpenClawRuntimeDir(); + if (packagedRuntimeDir && isOpenClawRuntimeWritable(packagedRuntimeDir)) { + return packagedRuntimeDir; + } + return materializePackagedOpenClawRuntime(); + } + return getOpenClawDir(); +} + /** * Get OpenClaw package directory resolved to a real path. * Useful when consumers need deterministic module resolution under pnpm symlinks. @@ -144,6 +360,26 @@ export function getOpenClawEntryPath(): string { return join(getOpenClawDir(), 'openclaw.mjs'); } +/** + * Get OpenClaw entry script path for spawned OpenClaw processes. + */ +export function getOpenClawRuntimeEntryPath(): string { + return join(getOpenClawRuntimeDir(), 'openclaw.mjs'); +} + +/** + * Get the external runtime dependency staging directory for OpenClaw. + * + * In packaged mode this intentionally points at the parent of the materialized + * runtime directory. OpenClaw recognizes an existing openclaw-* package root + * under OPENCLAW_PLUGIN_STAGE_DIR and reuses its node_modules instead of + * running npm install into ~/.openclaw/plugin-runtime-deps. + */ +export function getOpenClawPluginStageDir(openclawDir = getOpenClawRuntimeDir()): string | null { + if (!getElectronApp().isPackaged) return null; + return dirname(openclawDir); +} + /** * Get ClawHub CLI entry script path (clawdhub.js) */ diff --git a/electron/utils/plugin-install.ts b/electron/utils/plugin-install.ts index 6c294b0..4e76822 100644 --- a/electron/utils/plugin-install.ts +++ b/electron/utils/plugin-install.ts @@ -250,6 +250,25 @@ function readPluginVersion(pkgJsonPath: string): string | null { } } +function collectPluginRuntimeDeps(pluginDir: string): string[] { + try { + const raw = readFileSync(fsPath(join(pluginDir, 'package.json')), 'utf-8'); + const pkg = JSON.parse(raw) as { dependencies?: Record; optionalDependencies?: Record }; + return Object.keys({ + ...pkg.dependencies, + ...pkg.optionalDependencies, + }); + } catch { + return []; + } +} + +function hasPluginRuntimeDeps(pluginDir: string): boolean { + const deps = collectPluginRuntimeDeps(pluginDir); + if (deps.length === 0) return true; + return deps.every((depName) => existsSync(fsPath(join(pluginDir, 'node_modules', ...depName.split('/'), 'package.json')))); +} + // ── pnpm-aware node_modules copy helpers ───────────────────────────────────── /** Walk up from a path until we find a parent named node_modules. */ @@ -376,7 +395,7 @@ export function ensurePluginInstalled( if (!sourceDir) return { installed: true }; // no bundled source to compare, keep existing const installedVersion = readPluginVersion(targetPkgJson); const sourceVersion = readPluginVersion(join(sourceDir, 'package.json')); - if (!sourceVersion || !installedVersion || sourceVersion === installedVersion) { + if ((!sourceVersion || !installedVersion || sourceVersion === installedVersion) && hasPluginRuntimeDeps(targetDir)) { return { installed: true }; // same version or unable to compare } // Version differs — fall through to overwrite install diff --git a/electron/utils/wechat-login.ts b/electron/utils/wechat-login.ts index 743b37c..d4778e8 100644 --- a/electron/utils/wechat-login.ts +++ b/electron/utils/wechat-login.ts @@ -6,7 +6,7 @@ import { homedir } from 'node:os'; import { join } from 'node:path'; import { deflateSync } from 'node:zlib'; import { normalizeOpenClawAccountId } from './channel-alias'; -import { getOpenClawResolvedDir } from './paths'; +import { getOpenClawDir, getOpenClawResolvedDir } from './paths'; export const DEFAULT_WECHAT_BASE_URL = 'https://ilinkai.weixin.qq.com'; const DEFAULT_ILINK_BOT_TYPE = '3'; @@ -18,6 +18,10 @@ const WECHAT_STATE_DIR = join(OPENCLAW_DIR, 'openclaw-weixin'); const WECHAT_ACCOUNT_INDEX_FILE = join(WECHAT_STATE_DIR, 'accounts.json'); const WECHAT_ACCOUNTS_DIR = join(WECHAT_STATE_DIR, 'accounts'); const require = createRequire(import.meta.url); +const openclawPath = getOpenClawDir(); +const openclawResolvedPath = getOpenClawResolvedDir(); +const openclawRequire = createRequire(join(openclawResolvedPath, 'package.json')); +const projectRequire = createRequire(join(openclawPath, 'package.json')); type QrCodeMatrix = { addData(input: string): void; @@ -38,14 +42,29 @@ type QrRenderDeps = { let qrRenderDeps: QrRenderDeps | null = null; +function resolveOpenClawModule(specifier: string): string { + try { + return openclawRequire.resolve(specifier); + } catch { /* fall through */ } + try { + return projectRequire.resolve(specifier); + } catch (err) { + const reason = err instanceof Error ? err.message : String(err); + throw new Error( + `Failed to resolve "${specifier}" from OpenClaw context. ` + + `openclawPath=${openclawPath}, resolvedPath=${openclawResolvedPath}. ${reason}`, + { cause: err }, + ); + } +} + function getQrRenderDeps(): QrRenderDeps { if (qrRenderDeps) { return qrRenderDeps; } - const openclawRequire = createRequire(join(getOpenClawResolvedDir(), 'package.json')); - const qrCodeModulePath = openclawRequire.resolve('qrcode-terminal/vendor/QRCode/index.js'); - const qrErrorCorrectLevelPath = openclawRequire.resolve('qrcode-terminal/vendor/QRCode/QRErrorCorrectLevel.js'); + const qrCodeModulePath = resolveOpenClawModule('qrcode-terminal/vendor/QRCode/index.js'); + const qrErrorCorrectLevelPath = resolveOpenClawModule('qrcode-terminal/vendor/QRCode/QRErrorCorrectLevel.js'); qrRenderDeps = { QRCode: require(qrCodeModulePath), QRErrorCorrectLevel: require(qrErrorCorrectLevelPath), diff --git a/electron/utils/whatsapp-login.ts b/electron/utils/whatsapp-login.ts index cbe1375..861b763 100644 --- a/electron/utils/whatsapp-login.ts +++ b/electron/utils/whatsapp-login.ts @@ -12,7 +12,7 @@ const require = createRequire(import.meta.url); const openclawPath = getOpenClawDir(); const openclawResolvedPath = getOpenClawResolvedDir(); // Primary: resolves from openclaw's real (dereferenced) path in pnpm store. -// In packaged builds this is the flat `resources/openclaw/node_modules/`. +// In packaged builds this is the staged resources/openclaw-runtime//node_modules. const openclawRequire = createRequire(join(openclawResolvedPath, 'package.json')); // Fallback: resolves from the symlink path (`node_modules/openclaw`). // In dev mode, Node walks UP from here to `/node_modules/`, which @@ -39,9 +39,23 @@ function resolveOpenClawPackageJson(packageName: string): string { } } +function resolveOpenClawModule(specifier: string): string { + try { + return openclawRequire.resolve(specifier); + } catch { /* fall through */ } + try { + return projectRequire.resolve(specifier); + } catch (err) { + const reason = err instanceof Error ? err.message : String(err); + throw new Error( + `Failed to resolve "${specifier}" from OpenClaw context. ` + + `openclawPath=${openclawPath}, resolvedPath=${openclawResolvedPath}. ${reason}`, + { cause: err } + ); + } +} + const baileysPath = dirname(resolveOpenClawPackageJson('@whiskeysockets/baileys')); -const qrCodeModulePath = openclawRequire.resolve('qrcode-terminal/vendor/QRCode/index.js'); -const qrErrorCorrectLevelPath = openclawRequire.resolve('qrcode-terminal/vendor/QRCode/QRErrorCorrectLevel.js'); // Load Baileys dependencies dynamically const { @@ -51,10 +65,6 @@ const { fetchLatestBaileysVersion } = require(baileysPath); -// Load QRCode dependencies dynamically -const QRCodeModule = require(qrCodeModulePath); -const QRErrorCorrectLevelModule = require(qrErrorCorrectLevelPath); - // Types from Baileys (approximate since we don't have types for dynamic require) interface BaileysError extends Error { output?: { statusCode?: number }; @@ -68,12 +78,41 @@ type ConnectionState = { qr?: string; }; +type QrCodeMatrix = { + addData(input: string): void; + make(): void; + getModuleCount(): number; + isDark(row: number, col: number): boolean; +}; +type QrCodeConstructor = new (typeNumber: number, errorCorrectionLevel: unknown) => QrCodeMatrix; +type QrErrorCorrectLevelModule = { + L: unknown; +}; +type QrRenderDeps = { + QRCode: QrCodeConstructor; + QRErrorCorrectLevel: QrErrorCorrectLevelModule; +}; + +let qrRenderDeps: QrRenderDeps | null = null; + +function getQrRenderDeps(): QrRenderDeps { + if (qrRenderDeps) { + return qrRenderDeps; + } + + const qrCodeModulePath = resolveOpenClawModule('qrcode-terminal/vendor/QRCode/index.js'); + const qrErrorCorrectLevelPath = resolveOpenClawModule('qrcode-terminal/vendor/QRCode/QRErrorCorrectLevel.js'); + qrRenderDeps = { + QRCode: require(qrCodeModulePath), + QRErrorCorrectLevel: require(qrErrorCorrectLevelPath), + }; + return qrRenderDeps; +} + // --- QR Generation Logic (Adapted from OpenClaw) --- -const QRCode = QRCodeModule; -const QRErrorCorrectLevel = QRErrorCorrectLevelModule; - function createQrMatrix(input: string) { + const { QRCode, QRErrorCorrectLevel } = getQrRenderDeps(); const qr = new QRCode(-1, QRErrorCorrectLevel.L); qr.addData(input); qr.make(); diff --git a/package.json b/package.json index 59d201a..bf346f2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "clawx", - "version": "0.3.11", + "version": "0.3.12-beta.2", "pnpm": { "onlyBuiltDependencies": [ "@discordjs/opus", @@ -13,8 +13,7 @@ "sharp" ], "overrides": { - "isbinaryfile": "^5.0.0", - "https-proxy-agent": "7.0.6" + "isbinaryfile": "^5.0.0" }, "supportedArchitectures": { "os": [ @@ -81,14 +80,20 @@ "ms": "^2.1.3", "node-machine-id": "^1.1.12", "posthog-node": "^5.28.0", - "tar": "^6.2.1", "rehype-katex": "^7.0.1", "remark-math": "^6.0.0", + "tar": "^6.2.1", "ws": "^8.19.0" }, "devDependencies": { + "@buape/carbon": "0.16.0", + "@discordjs/voice": "^0.19.2", "@eslint/js": "^10.0.1", + "@grammyjs/runner": "^2.0.3", + "@grammyjs/transformer-throttler": "^1.2.1", + "@homebridge/ciao": "^1.3.7", "@larksuite/openclaw-lark": "2026.4.8", + "@larksuiteoapi/node-sdk": "^1.61.1", "@playwright/test": "^1.56.1", "@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-dropdown-menu": "^2.1.16", @@ -103,7 +108,8 @@ "@radix-ui/react-toast": "^1.2.15", "@radix-ui/react-tooltip": "^1.2.8", "@soimy/dingtalk": "^3.5.3", - "@tencent-weixin/openclaw-weixin": "^2.1.8", + "@tencent-connect/qqbot-connector": "^1.1.0", + "@tencent-weixin/openclaw-weixin": "^2.1.9", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.2", "@types/node": "^25.3.0", @@ -113,11 +119,13 @@ "@typescript-eslint/eslint-plugin": "^8.56.0", "@typescript-eslint/parser": "^8.56.0", "@vitejs/plugin-react": "^5.1.4", - "@wecom/wecom-openclaw-plugin": "^2026.4.8", + "@wecom/wecom-openclaw-plugin": "^2026.4.23", "@whiskeysockets/baileys": "7.0.0-rc.9", + "acpx": "0.5.3", "autoprefixer": "^10.4.24", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", + "discord-api-types": "^0.38.47", "electron": "^40.6.0", "electron-builder": "^26.8.1", "eslint": "^10.0.0", @@ -125,12 +133,18 @@ "eslint-plugin-react-refresh": "^0.5.0", "framer-motion": "^12.34.2", "globals": "^17.3.0", + "grammy": "^1.42.0", + "https-proxy-agent": "^9.0.0", "i18next": "^25.8.11", "jsdom": "^28.1.0", "lucide-react": "^0.563.0", - "openclaw": "2026.4.15", + "mpg123-decoder": "^1.0.3", + "openclaw": "2026.4.26", + "opusscript": "^0.1.1", + "playwright-core": "1.59.1", "png2icons": "^2.0.1", "postcss": "^8.5.6", + "qrcode-terminal": "0.12.0", "react": "^19.2.4", "react-dom": "^19.2.4", "react-i18next": "^16.5.4", @@ -138,11 +152,13 @@ "react-router-dom": "^7.13.0", "remark-gfm": "^4.0.1", "sharp": "^0.34.5", + "silk-wasm": "^3.7.1", "sonner": "^2.0.7", "tailwind-merge": "^3.5.0", "tailwindcss": "^3.4.19", "tailwindcss-animate": "^1.0.7", "typescript": "^5.9.3", + "undici": "8.1.0", "use-stick-to-bottom": "^1.1.3", "vite": "^7.3.1", "vite-plugin-electron": "^0.29.0", @@ -152,4 +168,4 @@ "zx": "^8.8.5" }, "packageManager": "pnpm@10.31.0+sha512.e3927388bfaa8078ceb79b748ffc1e8274e84d75163e67bc22e06c0d3aed43dd153151cbf11d7f8301ff4acb98c68bdc5cadf6989532801ffafe3b3e4a63c268" -} +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 05e2c77..303207d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,7 +6,6 @@ settings: overrides: isbinaryfile: ^5.0.0 - https-proxy-agent: 7.0.6 importers: @@ -39,25 +38,43 @@ importers: posthog-node: specifier: ^5.28.0 version: 5.28.5 - tar: - specifier: ^6.2.1 - version: 6.2.1 rehype-katex: specifier: ^7.0.1 version: 7.0.1 remark-math: specifier: ^6.0.0 version: 6.0.0 + tar: + specifier: ^6.2.1 + version: 6.2.1 ws: specifier: ^8.19.0 version: 8.20.0 devDependencies: + '@buape/carbon': + specifier: 0.16.0 + version: 0.16.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.9.1)(opusscript@0.1.1) + '@discordjs/voice': + specifier: ^0.19.2 + version: 0.19.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.9.1)(opusscript@0.1.1) '@eslint/js': specifier: ^10.0.1 version: 10.0.1(eslint@10.1.0(jiti@1.21.7)) + '@grammyjs/runner': + specifier: ^2.0.3 + version: 2.0.3(grammy@1.42.0(encoding@0.1.13)) + '@grammyjs/transformer-throttler': + specifier: ^1.2.1 + version: 1.2.1(grammy@1.42.0(encoding@0.1.13)) + '@homebridge/ciao': + specifier: ^1.3.7 + version: 1.3.7 '@larksuite/openclaw-lark': specifier: 2026.4.8 - version: 2026.4.8(openclaw@2026.4.15(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.1)(@napi-rs/canvas@0.1.97)(@types/express@5.0.6)(apache-arrow@18.1.0)(encoding@0.1.13)(hono@4.12.12)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)) + version: 2026.4.8(openclaw@2026.4.26) + '@larksuiteoapi/node-sdk': + specifier: ^1.61.1 + version: 1.62.0 '@playwright/test': specifier: ^1.56.1 version: 1.59.0 @@ -99,10 +116,13 @@ importers: version: 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@soimy/dingtalk': specifier: ^3.5.3 - version: 3.5.3(openclaw@2026.4.15(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.1)(@napi-rs/canvas@0.1.97)(@types/express@5.0.6)(apache-arrow@18.1.0)(encoding@0.1.13)(hono@4.12.12)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)) + version: 3.5.3(openclaw@2026.4.26) + '@tencent-connect/qqbot-connector': + specifier: ^1.1.0 + version: 1.1.0 '@tencent-weixin/openclaw-weixin': - specifier: ^2.1.8 - version: 2.1.8 + specifier: ^2.1.9 + version: 2.1.9 '@testing-library/jest-dom': specifier: ^6.9.1 version: 6.9.1 @@ -129,13 +149,16 @@ importers: version: 8.57.2(eslint@10.1.0(jiti@1.21.7))(typescript@5.9.3) '@vitejs/plugin-react': specifier: ^5.1.4 - version: 5.2.0(vite@7.3.1(@types/node@25.5.0)(jiti@1.21.7)(yaml@2.8.3)) + version: 5.2.0(vite@7.3.1(@types/node@25.5.0)(jiti@1.21.7)(tsx@4.21.0)(yaml@2.8.3)) '@wecom/wecom-openclaw-plugin': - specifier: ^2026.4.8 - version: 2026.4.8 + specifier: ^2026.4.23 + version: 2026.4.2201 '@whiskeysockets/baileys': specifier: 7.0.0-rc.9 version: 7.0.0-rc.9(jimp@1.6.1)(sharp@0.34.5) + acpx: + specifier: 0.5.3 + version: 0.5.3 autoprefixer: specifier: ^10.4.24 version: 10.4.27(postcss@8.5.8) @@ -145,6 +168,9 @@ importers: clsx: specifier: ^2.1.1 version: 2.1.1 + discord-api-types: + specifier: ^0.38.47 + version: 0.38.47 electron: specifier: ^40.6.0 version: 40.8.4 @@ -166,6 +192,12 @@ importers: globals: specifier: ^17.3.0 version: 17.4.0 + grammy: + specifier: ^1.42.0 + version: 1.42.0(encoding@0.1.13) + https-proxy-agent: + specifier: ^9.0.0 + version: 9.0.0 i18next: specifier: ^25.8.11 version: 25.10.9(typescript@5.9.3) @@ -175,15 +207,27 @@ importers: lucide-react: specifier: ^0.563.0 version: 0.563.0(react@19.2.4) + mpg123-decoder: + specifier: ^1.0.3 + version: 1.0.3 openclaw: - specifier: 2026.4.15 - version: 2026.4.15(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.1)(@napi-rs/canvas@0.1.97)(@types/express@5.0.6)(apache-arrow@18.1.0)(encoding@0.1.13)(hono@4.12.12)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + specifier: 2026.4.26 + version: 2026.4.26 + opusscript: + specifier: ^0.1.1 + version: 0.1.1 + playwright-core: + specifier: 1.59.1 + version: 1.59.1 png2icons: specifier: ^2.0.1 version: 2.0.1 postcss: specifier: ^8.5.6 version: 8.5.8 + qrcode-terminal: + specifier: 0.12.0 + version: 0.12.0 react: specifier: ^19.2.4 version: 19.2.4 @@ -205,6 +249,9 @@ importers: sharp: specifier: ^0.34.5 version: 0.34.5 + silk-wasm: + specifier: ^3.7.1 + version: 3.7.1 sonner: specifier: ^2.0.7 version: 2.0.7(react-dom@19.2.4(react@19.2.4))(react@19.2.4) @@ -213,19 +260,22 @@ importers: version: 3.5.0 tailwindcss: specifier: ^3.4.19 - version: 3.4.19(yaml@2.8.3) + version: 3.4.19(tsx@4.21.0)(yaml@2.8.3) tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.4.19(yaml@2.8.3)) + version: 1.0.7(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.8.3)) typescript: specifier: ^5.9.3 version: 5.9.3 + undici: + specifier: 8.1.0 + version: 8.1.0 use-stick-to-bottom: specifier: ^1.1.3 version: 1.1.3(react@19.2.4) vite: specifier: ^7.3.1 - version: 7.3.1(@types/node@25.5.0)(jiti@1.21.7)(yaml@2.8.3) + version: 7.3.1(@types/node@25.5.0)(jiti@1.21.7)(tsx@4.21.0)(yaml@2.8.3) vite-plugin-electron: specifier: ^0.29.0 version: 0.29.1(vite-plugin-electron-renderer@0.14.6) @@ -234,7 +284,7 @@ importers: version: 0.14.6 vitest: specifier: ^4.0.18 - version: 4.1.1(@types/node@25.5.0)(jsdom@28.1.0(@noble/hashes@2.0.1))(vite@7.3.1(@types/node@25.5.0)(jiti@1.21.7)(yaml@2.8.3)) + version: 4.1.1(@types/node@25.5.0)(jsdom@28.1.0(@noble/hashes@2.0.1))(vite@7.3.1(@types/node@25.5.0)(jiti@1.21.7)(tsx@4.21.0)(yaml@2.8.3)) zustand: specifier: ^5.0.11 version: 5.0.12(@types/react@19.2.14)(react@19.2.4)(use-sync-external-store@1.6.0(react@19.2.4)) @@ -253,8 +303,13 @@ packages: '@adobe/css-tools@4.4.4': resolution: {integrity: sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==} - '@agentclientprotocol/sdk@0.18.2': - resolution: {integrity: sha512-l/o9NKvUc00GPa6RFJ4AccQq2O/PAf83xQ75mThHuL3H571iN4+PEdwnTBez67sS8Nv2aSA373xCZ5CbTXEwzA==} + '@agentclientprotocol/sdk@0.17.1': + resolution: {integrity: sha512-yjyIn8POL18IOXioLySYiL0G44kZ/IZctAls7vS3AC3X+qLhFXbWmzABSZehwRnWFShMXT+ODa/HJG1+mGXZ1A==} + peerDependencies: + zod: ^3.25.0 || ^4.0.0 + + '@agentclientprotocol/sdk@0.20.0': + resolution: {integrity: sha512-BxEHyE4MvwyOsdyVPub1vEtyrq8E0JSdjC+ckXWimY1VabFCTXdPyXv2y2Omz1j+iod7Z8oBJDXFCJptM0GBqQ==} peerDependencies: zod: ^3.25.0 || ^4.0.0 @@ -262,8 +317,8 @@ packages: resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} - '@anthropic-ai/sdk@0.73.0': - resolution: {integrity: sha512-URURVzhxXGJDGUGFunIOtBlSl7KWvZiAAKY/ttTkZAkXT9bTPqdk2eK0b8qqSxXpikh3QKPnPYpiyX98zf5ebw==} + '@anthropic-ai/sdk@0.90.0': + resolution: {integrity: sha512-MzZtPabJF1b0FTDl6Z6H5ljphPwACLGP13lu8MTiB8jXaW/YXlpOp+Po2cVou3MPM5+f5toyLnul9whKCy7fBg==} hasBin: true peerDependencies: zod: ^3.25.0 || ^4.0.0 @@ -271,18 +326,6 @@ packages: zod: optional: true - '@anthropic-ai/sdk@0.80.0': - resolution: {integrity: sha512-WeXLn7zNVk3yjeshn+xZHvld6AoFUOR3Sep6pSoHho5YbSi6HwcirqgPA5ccFuW8QTVJAAU7N8uQQC6Wa9TG+g==} - hasBin: true - peerDependencies: - zod: ^3.25.0 || ^4.0.0 - peerDependenciesMeta: - zod: - optional: true - - '@anthropic-ai/vertex-sdk@0.15.0': - resolution: {integrity: sha512-i2LDdu6VB8Lqqip+kbNSXRxQgFsCg6GPBO/X2zRJwLl99dNzf28nb6Rdi0EodONXsyJfY2TKdGR+y5l1/AKFEg==} - '@ark/schema@0.56.0': resolution: {integrity: sha512-ECg3hox/6Z/nLajxXqNhgPtNdHWC9zNsDyskwO28WinoFEnWow4IsERNz9AnXRhTZJnYIlAJ4uGn3nlLk65vZA==} @@ -316,127 +359,119 @@ packages: '@aws-crypto/util@5.2.0': resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} - '@aws-sdk/client-bedrock-runtime@3.1028.0': - resolution: {integrity: sha512-FFdtkxWFmKX1Ka/vjDRKpYsm0/HTlab5qpHl8LAXRmJjhSSiLGiCnJYsYFN+zp3NucL02kM1DlpFU8Xnm7d8Ng==} + '@aws-sdk/client-bedrock-runtime@3.1035.0': + resolution: {integrity: sha512-XELIQk+znh53J2Bj0EmOftgcKRLw3tvI/P4WHLgSbSBWPh+wg0SvHu+bgIlzMHARbOC9auA0lsH+Eb9JwF1yjA==} engines: {node: '>=20.0.0'} - '@aws-sdk/client-bedrock@3.1028.0': - resolution: {integrity: sha512-YEUikjoImgUjv2UEpnD/WP0JiLdoLRnkajnSQR9LPCa8+BGy3+j879jimPlAuypOux1/CgqMA7Fwt13IpF2+UA==} + '@aws-sdk/core@3.974.4': + resolution: {integrity: sha512-EbVgyzQ83/Lf6oh1O4vYY47tuYw3Aosthh865LNU77KyotKz+uvEBNmsl/bSVS/vG+IU39mCqcOHrnhmhF4lug==} engines: {node: '>=20.0.0'} - '@aws-sdk/client-cognito-identity@3.1027.0': - resolution: {integrity: sha512-xGZgYNqR0lHVm3ASm1y/MYutLgJ2Ja2kufrbBQuwGD7KYrfUVBnDgbYeuEhhyzQhOvoKXpJ7KrA8tmv5Rc3agA==} + '@aws-sdk/credential-provider-env@3.972.30': + resolution: {integrity: sha512-dHpeqa29a0cBYq/h59IC2EK3AphLY96nKy4F35kBtiz9GuKDc32UYRTgjZaF8uuJCnqgw9omUZKR+9myyDHC2A==} engines: {node: '>=20.0.0'} - '@aws-sdk/core@3.973.27': - resolution: {integrity: sha512-CUZ5m8hwMCH6OYI4Li/WgMfIEx10Q2PLI9Y3XOUTPGZJ53aZ0007jCv+X/ywsaERyKPdw5MRZWk877roQksQ4A==} + '@aws-sdk/credential-provider-http@3.972.32': + resolution: {integrity: sha512-A+ZTT//Mswkf9DFEM6XlngwOtYdD8X4CUcoZ2wdpgI8cCs9mcGeuhgTwbGJvealub/MeONOaUr3FbRPMKmTDjg==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-cognito-identity@3.972.22': - resolution: {integrity: sha512-ih6ORpme4i2qJqGckOQ9Lt2iiZ+5tm3bnfsT5TwoPyFnuDURXv3OdhYa3Nr/m0iJr38biqKYKdGKb5GR1KB2hw==} + '@aws-sdk/credential-provider-ini@3.972.34': + resolution: {integrity: sha512-MoRc7tLnx3JpFkV2R826enEfBUVN8o9Cc7y3hnbMwiWzL/VJhgfxRQzHkEL9vWorMWP7tibltsRcLoid9fsVdw==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-env@3.972.25': - resolution: {integrity: sha512-6QfI0wv4jpG5CrdO/AO0JfZ2ux+tKwJPrUwmvxXF50vI5KIypKVGNF6b4vlkYEnKumDTI1NX2zUBi8JoU5QU3A==} + '@aws-sdk/credential-provider-login@3.972.34': + resolution: {integrity: sha512-XVSklkRRQ/CQDmv3VVFdZRl5hTFgncFhZrLyi0Ai4LZk5o3jpY5HIfuTK7ad7tixPKa+iQmL9+vg9qNyYZB+nw==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-http@3.972.27': - resolution: {integrity: sha512-3V3Usj9Gs93h865DqN4M2NWJhC5kXU9BvZskfN3+69omuYlE3TZxOEcVQtBGLOloJB7BVfJKXVLqeNhOzHqSlQ==} + '@aws-sdk/credential-provider-node@3.972.35': + resolution: {integrity: sha512-nVrY7AdGfzYgAa/jd9m06p3ES7QQDaB7zN9c+vXnVXxBRkAs9MjRDPB5AKogWuC6phddltfvHGFqLDJmyU9u/A==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-ini@3.972.29': - resolution: {integrity: sha512-SiBuAnXecCbT/OpAf3vqyI/AVE3mTaYr9ShXLybxZiPLBiPCCOIWSGAtYYGQWMRvobBTiqOewaB+wcgMMZI2Aw==} + '@aws-sdk/credential-provider-process@3.972.30': + resolution: {integrity: sha512-McJPomNTSEo+C6UA3Zq6pFrcyTUaVsoPPBOvbOHAoIFPc8Z2CMLndqFJOnB+9bVFiBTWQLutlVGmrocBbvv4MQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-login@3.972.29': - resolution: {integrity: sha512-OGOslTbOlxXexKMqhxCEbBQbUIfuhGxU5UXw3Fm56ypXHvrXH4aTt/xb5Y884LOoteP1QST1lVZzHfcTnWhiPQ==} + '@aws-sdk/credential-provider-sso@3.972.34': + resolution: {integrity: sha512-WngYb2K+/yhkDOmDfAOjoCa9Ja3he0DZiAraboKwgWoVRkajDIcDYBCVbUTxtTUldvQoe7VvHLTrBNxvftN1aQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-node@3.972.30': - resolution: {integrity: sha512-FMnAnWxc8PG+ZrZ2OBKzY4luCUJhe9CG0B9YwYr4pzrYGLXBS2rl+UoUvjGbAwiptxRL6hyA3lFn03Bv1TLqTw==} + '@aws-sdk/credential-provider-web-identity@3.972.34': + resolution: {integrity: sha512-5KLUH+XmSNRj6amJiJSrPsCxU5l/PYDfxyqPa1MxWhHoQC3sxvGPrSib3IE+HQlfRA4e2kO0bnJy7HJdjvpuuA==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-process@3.972.25': - resolution: {integrity: sha512-HR7ynNRdNhNsdVCOCegy1HsfsRzozCOPtD3RzzT1JouuaHobWyRfJzCBue/3jP7gECHt+kQyZUvwg/cYLWurNQ==} + '@aws-sdk/eventstream-handler-node@3.972.14': + resolution: {integrity: sha512-m4X56gxG76/CKfxNVbOFuYwnAZcHgS6HOH8lgp15HoGHIAVTcZfZrXvcYzJFOMLEJgVn+JHBu6EiNV+xSNXXFg==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-sso@3.972.29': - resolution: {integrity: sha512-HWv4SEq3jZDYPlwryZVef97+U8CxxRos5mK8sgGO1dQaFZpV5giZLzqGE5hkDmh2csYcBO2uf5XHjPTpZcJlig==} + '@aws-sdk/middleware-eventstream@3.972.10': + resolution: {integrity: sha512-QUqLs7Af1II9X4fCRAu+EGHG3KHyOp4RkuLhRKoA3NuFlh6TL8i+zXBl8w2LUxqm44B/Kom45hgSlwA1SpTsXQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-web-identity@3.972.29': - resolution: {integrity: sha512-PdMBza1WEKEUPFEmMGCfnU2RYCz9MskU2e8JxjyUOsMKku7j9YaDKvbDi2dzC0ihFoM6ods2SbhfAAro+Gwlew==} + '@aws-sdk/middleware-host-header@3.972.10': + resolution: {integrity: sha512-IJSsIMeVQ8MMCPbuh1AbltkFhLBLXn7aejzfX5YKT/VLDHn++Dcz8886tXckE+wQssyPUhaXrJhdakO2VilRhg==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-providers@3.1027.0': - resolution: {integrity: sha512-QJZqR86dDtlBKTmpvvyzqSSoaLBF5ubm1RvEydVXkLOpbD5Vakq+IbHRRMARxbQ1E0QZM1p/n6z0mnsjGWbKYw==} + '@aws-sdk/middleware-logger@3.972.10': + resolution: {integrity: sha512-OOuGvvz1Dm20SjZo5oEBePFqxt5nf8AwkNDSyUHvD9/bfNASmstcYxFAHUowy4n6Io7mWUZ04JURZwSBvyQanQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/eventstream-handler-node@3.972.13': - resolution: {integrity: sha512-2Pi1kD0MDkMAxDHqvpi/hKMs9hXUYbj2GLEjCwy+0jzfLChAsF50SUYnOeTI+RztA+Ic4pnLAdB03f1e8nggxQ==} + '@aws-sdk/middleware-recursion-detection@3.972.11': + resolution: {integrity: sha512-+zz6f79Kj9V5qFK2P+D8Ehjnw4AhphAlCAsPjUqEcInA9umtSSKMrHbSagEeOIsDNuvVrH98bjRHcyQukTrhaQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-eventstream@3.972.9': - resolution: {integrity: sha512-ypgOvpWxQTCnQyDHGxnTviqqANE7FIIzII7VczJnTPCJcJlu17hMQXnvE47aKSKsawVJAaaRsyOEbHQuLJF9ng==} + '@aws-sdk/middleware-sdk-s3@3.972.33': + resolution: {integrity: sha512-n8Eh/+kq3u/EodLr8n6sQupu03QGjf122RHXCTGLaHSkavz/2beSKpRlq2oDgfmJZNkAkWF113xbyaUmyOd+YA==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-host-header@3.972.9': - resolution: {integrity: sha512-je5vRdNw4SkuTnmRbFZLdye4sQ0faLt8kwka5wnnSU30q1mHO4X+idGEJOOE+Tn1ME7Oryn05xxkDvIb3UaLaQ==} + '@aws-sdk/middleware-user-agent@3.972.34': + resolution: {integrity: sha512-jrmJHyYlTQocR7H4VhvSFhaoedMb2rmlOTvFWD6tNBQ/EVQhTsrNfQUYFuPiOc2wUGxbm5LgCHtnvVmCPgODHw==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-logger@3.972.9': - resolution: {integrity: sha512-HsVgDrruhqI28RkaXALm8grJ7Agc1wF6Et0xh6pom8NdO2VdO/SD9U/tPwUjewwK/pVoka+EShBxyCvgsPCtog==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/middleware-recursion-detection@3.972.10': - resolution: {integrity: sha512-RVQQbq5orQ/GHUnXvqEOj2HHPBJm+mM+ySwZKS5UaLBwra5ugRtiH09PLUoOZRl7a1YzaOzXSuGbn9iD5j60WQ==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/middleware-user-agent@3.972.29': - resolution: {integrity: sha512-f/sIRzuTfEjg6NsbMYvye2VsmnQoNgntntleQyx5uGacUYzszbfIlO3GcI6G6daWUmTm0IDZc11qMHWwF0o0mQ==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/middleware-websocket@3.972.15': - resolution: {integrity: sha512-hsZ35FORQsN5hwNdMD6zWmHCphbXkDxO6j+xwCUiuMb0O6gzS/PWgttQNl1OAn7h/uqZAMUG4yOS0wY/yhAieg==} + '@aws-sdk/middleware-websocket@3.972.16': + resolution: {integrity: sha512-86+S9oCyRVGzoMRpQhxkArp7kD2K75GPmaNevd9B6EyNhWoNvnCZZ3WbgN4j7ZT+jvtvBCGZvI2XHsWZJ+BRIg==} engines: {node: '>= 14.0.0'} - '@aws-sdk/nested-clients@3.996.19': - resolution: {integrity: sha512-uFkmCDXvmQYLanlYdOFS0+MQWkrj9wPMt/ZCc/0J0fjPim6F5jBVBmEomvGY/j77ILW6GTPwN22Jc174Mhkw6Q==} + '@aws-sdk/nested-clients@3.997.2': + resolution: {integrity: sha512-uGGQO08YetrqfInOKG5atRMrCDRQWRuZ9gGfKY6svPmuE4K7ac+XcbCkpWpjcA7yCYsBaKB/Nly4XKgPXUO1PA==} engines: {node: '>=20.0.0'} - '@aws-sdk/region-config-resolver@3.972.11': - resolution: {integrity: sha512-6Q8B1dcx6BBqUTY1Mc/eROKA0FImEEY5VPSd6AGPEUf0ErjExz4snVqa9kNJSoVDV1rKaNf3qrWojgcKW+SdDg==} + '@aws-sdk/region-config-resolver@3.972.13': + resolution: {integrity: sha512-CvJ2ZIjK/jVD/lbOpowBVElJyC1YxLTIJ13yM0AEo0t2v7swOzGjSA6lJGH+DwZXQhcjUjoYwc8bVYCX5MDr1A==} engines: {node: '>=20.0.0'} - '@aws-sdk/token-providers@3.1026.0': - resolution: {integrity: sha512-Ieq/HiRrbEtrYP387Nes0XlR7H1pJiJOZKv+QyQzMYpvTiDs0VKy2ZB3E2Zf+aFovWmeE7lRE4lXyF7dYM6GgA==} + '@aws-sdk/signature-v4-multi-region@3.996.21': + resolution: {integrity: sha512-3EpT+C0QdmTMB5aVeJ5odWSLt9vg2oGzUXl1xvUazKGlkr9OBYnegNWqhhjGgZdv8RmSi5eS8nqqB+euNP2aqA==} engines: {node: '>=20.0.0'} - '@aws-sdk/token-providers@3.1028.0': - resolution: {integrity: sha512-2vDFrEhJDlUHyvDxqDyOk97cejMM8GJDyQbFfOCEWclGwhTjlj1mdyj36xsxh7DYyuquhjqfbvhpl6ZzsVol0w==} + '@aws-sdk/token-providers@3.1035.0': + resolution: {integrity: sha512-E6IO3Cn+OzBe6Sb5pnubd5Y8qSUMAsVKkD5QSwFfIx5fV1g5SkYwUDRDyPlm90RuIVcCo28wpMJU6W8wXH46Aw==} engines: {node: '>=20.0.0'} - '@aws-sdk/types@3.973.7': - resolution: {integrity: sha512-reXRwoJ6CfChoqAsBszUYajAF8Z2LRE+CRcKocvFSMpIiLOtYU3aJ9trmn6VVPAzbbY5LXF+FfmUslbXk1SYFg==} + '@aws-sdk/types@3.973.8': + resolution: {integrity: sha512-gjlAdtHMbtR9X5iIhVUvbVcy55KnznpC6bkDUWW9z915bi0ckdUr5cjf16Kp6xq0bP5HBD2xzgbL9F9Quv5vUw==} engines: {node: '>=20.0.0'} - '@aws-sdk/util-endpoints@3.996.6': - resolution: {integrity: sha512-2nUQ+2ih7CShuKHpGSIYvvAIOHy52dOZguYG36zptBukhw6iFwcvGfG0tes0oZFWQqEWvgZe9HLWaNlvXGdOrg==} + '@aws-sdk/util-arn-parser@3.972.3': + resolution: {integrity: sha512-HzSD8PMFrvgi2Kserxuff5VitNq2sgf3w9qxmskKDiDTThWfVteJxuCS9JXiPIPtmCrp+7N9asfIaVhBFORllA==} engines: {node: '>=20.0.0'} - '@aws-sdk/util-format-url@3.972.9': - resolution: {integrity: sha512-fNJXHrs0ZT7Wx0KGIqKv7zLxlDXt2vqjx9z6oKUQFmpE5o4xxnSryvVHfHpIifYHWKz94hFccIldJ0YSZjlCBw==} + '@aws-sdk/util-endpoints@3.996.8': + resolution: {integrity: sha512-oOZHcRDihk5iEe5V25NVWg45b3qEA8OpHWVdU/XQh8Zj4heVPAJqWvMphQnU7LkufmUo10EpvFPZuQMiFLJK3g==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/util-format-url@3.972.10': + resolution: {integrity: sha512-DEKiHNJVtNxdyTeQspzY+15Po/kHm6sF0Cs4HV9Q2+lplB63+DrvdeiSoOSdWEWAoO2RcY1veoXVDz2tWxWCgQ==} engines: {node: '>=20.0.0'} '@aws-sdk/util-locate-window@3.965.5': resolution: {integrity: sha512-WhlJNNINQB+9qtLtZJcpQdgZw3SCDCpXdUJP7cToGwHbCWCnRckGlc6Bx/OhWwIYFNAn+FIydY8SZ0QmVu3xTQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/util-user-agent-browser@3.972.9': - resolution: {integrity: sha512-sn/LMzTbGjYqCCF24390WxPd6hkpoSptiUn5DzVp4cD71yqw+yGEGm1YCxyEoPXyc8qciM8UzLJcZBFslxo5Uw==} + '@aws-sdk/util-user-agent-browser@3.972.10': + resolution: {integrity: sha512-FAzqXvfEssGdSIz8ejatan0bOdx1qefBWKF/gWmVBXIP1HkS7v/wjjaqrAGGKvyihrXTXW00/2/1nTJtxpXz7g==} - '@aws-sdk/util-user-agent-node@3.973.15': - resolution: {integrity: sha512-fYn3s9PtKdgQkczGZCFMgkNEe8aq1JCVbnRqjqN9RSVW43xn2RV9xdcZ3z01a48Jpkuh/xCmBKJxdLOo4Ozg7w==} + '@aws-sdk/util-user-agent-node@3.973.20': + resolution: {integrity: sha512-owEqyKr0z5hWwk+uHwudwNhyFMZ9f9eSWr/k/XD6yeDCI7hHyc56s4UOY1iBQmoramTbdAY4UCuLLEuKmjVXrg==} engines: {node: '>=20.0.0'} peerDependencies: aws-crt: '>=1.0.0' @@ -444,14 +479,10 @@ packages: aws-crt: optional: true - '@aws-sdk/xml-builder@3.972.17': - resolution: {integrity: sha512-Ra7hjqAZf1OXRRMueB13qex7mFJRDK/pgCvdSFemXBT8KCGnQDPoKzHY1SjN+TjJVmnpSF14W5tJ1vDamFu+Gg==} + '@aws-sdk/xml-builder@3.972.18': + resolution: {integrity: sha512-BMDNVG1ETXRhl1tnisQiYBef3RShJ1kfZA7x7afivTFMLirfHNTb6U71K569HNXhSXbQZsweHvSDZ6euBw8hPA==} engines: {node: '>=20.0.0'} - '@aws/bedrock-token-generator@1.1.0': - resolution: {integrity: sha512-i+DkWnfdA4j4sffy9dI4k3OGoOWqN8CTGdtO4IZ3c0kpKYFr6KyqzqLQmoRNrF3ACFcWj6u+J6cbBQ97j9wx5w==} - engines: {node: '>=16.0.0'} - '@aws/lambda-invoke-store@0.2.4': resolution: {integrity: sha512-iY8yvjE0y651BixKNPgmv1WrQc+GZ142sb0z4gYnChDDY2YqI4P/jsSopBWrKfAt7LOJAkOXt7rC/hms+WclQQ==} engines: {node: '>=18.0.0'} @@ -550,8 +581,8 @@ packages: resolution: {integrity: sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==} hasBin: true - '@buape/carbon@0.15.0': - resolution: {integrity: sha512-3V3XXIqtBzU5vSpCp4avX0RKbYyCIh493XDS/nRJvL7Num/9gB8Ylhd1ywt39gBGaNJScJW1hoWxRyN6Il6thw==} + '@buape/carbon@0.16.0': + resolution: {integrity: sha512-OJ9Z1WCQ6gY7yBE49MOgcfxxgl2n6NIdtyDdMOGVRP/gs31xKSfxhdnp7mOz7OQfK/rskwCixAI1fsDlTiLvQQ==} '@cacheable/memory@2.0.8': resolution: {integrity: sha512-FvEb29x5wVwu/Kf93IWwsOOEuhHh6dYCJF3vcKLzXc0KXIW181AOzv6ceT4ZpBHDvAfG60eqb+ekmrnLHIy+jw==} @@ -618,14 +649,6 @@ packages: resolution: {integrity: sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==} engines: {node: '>= 8.9.0'} - '@discordjs/node-pre-gyp@0.4.5': - resolution: {integrity: sha512-YJOVVZ545x24mHzANfYoy0BJX5PDyeZlpiJjDkUBM/V/Ao7TFX9lcUvCN4nr0tbr5ubeaXxtEBILUrHtTphVeQ==} - hasBin: true - - '@discordjs/opus@0.10.0': - resolution: {integrity: sha512-HHEnSNrSPmFEyndRdQBJN2YE6egyXS9JUnJWyP6jficK0Y+qKMEZXyYTgmzpjrxXP1exM/hKaNP7BRBUEWkU5w==} - engines: {node: '>=12.0.0'} - '@discordjs/voice@0.19.2': resolution: {integrity: sha512-3yJ255e4ag3wfZu/DSxeOZK1UtnqNxnspmLaQetGT0pDkThNZoHs+Zg6dgZZ19JEVomXygvfHn9lNpICZuYtEA==} engines: {node: '>=22.12.0'} @@ -670,8 +693,8 @@ packages: engines: {node: '>=14.14'} hasBin: true - '@emnapi/core@1.9.2': - resolution: {integrity: sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA==} + '@emnapi/core@1.10.0': + resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} '@emnapi/runtime@1.9.1': resolution: {integrity: sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA==} @@ -931,8 +954,8 @@ packages: '@hapi/hoek@9.3.0': resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} - '@homebridge/ciao@1.3.6': - resolution: {integrity: sha512-2F9N/15Q/GnoBXimr8PFg7fb1QrAQBvuZpaW2kseWOOy14Lzc3yZB1mT9N1Ju/4hlkboU33uHxtOxZkvkPoE/w==} + '@homebridge/ciao@1.3.7': + resolution: {integrity: sha512-ncvcXQe4vrqBLNqnVjQjke5NpNin6SO9bStfBZ4jgZk/xIjD9GMcH8vp8XKd7hw5akIzwITMiDMysIKvE5rHBw==} hasBin: true '@hono/node-server@1.19.13': @@ -1255,60 +1278,6 @@ packages: '@keyv/serialize@1.1.1': resolution: {integrity: sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==} - '@lancedb/lancedb-darwin-arm64@0.27.2': - resolution: {integrity: sha512-+XM68V/Rou8kKWDnUeKvg9ChKS0zGeQC2sKAop+06Ty4LwIjEGkeYBYrK0vMhZkBN5EFaOjTOp8E8hGQxdFwXA==} - engines: {node: '>= 18'} - cpu: [arm64] - os: [darwin] - - '@lancedb/lancedb-linux-arm64-gnu@0.27.2': - resolution: {integrity: sha512-laiTTDeMUTzm7t+t6ME5nNQMDoERjmkeuWAFWekbXiFdmp62Dqu34Lvf2BvpWnKwxLMZ5JcBJFIw32WS8/8Jnw==} - engines: {node: '>= 18'} - cpu: [arm64] - os: [linux] - libc: [glibc] - - '@lancedb/lancedb-linux-arm64-musl@0.27.2': - resolution: {integrity: sha512-bK5Mc50EvwGZaaiym5CoPu8Y4GNSyEEvTQ0dTC2AUIm83qdQu1rGw6kkYtc/rTH/hbvAvPQot4agHDZfMVxfYw==} - engines: {node: '>= 18'} - cpu: [arm64] - os: [linux] - libc: [musl] - - '@lancedb/lancedb-linux-x64-gnu@0.27.2': - resolution: {integrity: sha512-qe+ML0YmPru0o84f33RBHqoNk6zsHBjiXTLKsEBDiiFYKks/XMsrkKy9NQYcTxShBrg/nx/MLzCzd7dihqgNYw==} - engines: {node: '>= 18'} - cpu: [x64] - os: [linux] - libc: [glibc] - - '@lancedb/lancedb-linux-x64-musl@0.27.2': - resolution: {integrity: sha512-ZpX6Oxn06qvzAdm+D/gNb3SRp/A9lgRAPvPg6nnMmSQk5XamC/hbGO07uK1wwop7nlqXUH/thk4is2y2ieWdTw==} - engines: {node: '>= 18'} - cpu: [x64] - os: [linux] - libc: [musl] - - '@lancedb/lancedb-win32-arm64-msvc@0.27.2': - resolution: {integrity: sha512-4ffpFvh49MiUtkdFJOmBytXEbgUPXORphTOuExnJAgT1VAKwQcu4ZzdsgNoK6mumKBaU+pYQU/MedNkgTzx/Lw==} - engines: {node: '>= 18'} - cpu: [arm64] - os: [win32] - - '@lancedb/lancedb-win32-x64-msvc@0.27.2': - resolution: {integrity: sha512-XlwiI6CK2Gkqq+FFVAStHojao/XjIJpDPTm7Tb9SpLL64IlwGw3yaT2hnWKTm90W4KlSrpfSldPly+s+y4U7JQ==} - engines: {node: '>= 18'} - cpu: [x64] - os: [win32] - - '@lancedb/lancedb@0.27.2': - resolution: {integrity: sha512-JQpZHV5KzUzDI3flYCjtZcfHlEbL8lM54E0NT+jrRYe29aKYegfavvPsAsuZp0VdcMwFMZcpMkaBhjQMo/fwvg==} - engines: {node: '>= 18'} - cpu: [x64, arm64] - os: [darwin, linux, win32] - peerDependencies: - apache-arrow: '>=15.0.0 <=18.1.0' - '@larksuite/openclaw-lark@2026.4.8': resolution: {integrity: sha512-HHIwDBQPtEZSLHHCnV52ip5WL8mag/qBUucIyH+pbyMHAAXyKtPHTfXFGTm1/HVMC0ZH2km5f11QvNyy85SDGw==} engines: {node: '>=22'} @@ -1319,8 +1288,8 @@ packages: openclaw: optional: true - '@larksuiteoapi/node-sdk@1.60.0': - resolution: {integrity: sha512-MS1eXx7K6HHIyIcCBkJLb21okoa8ZatUGQWZaCCUePm6a37RWFmT6ZKlKvHxAanSX26wNuNlwP0RhgscsE+T6g==} + '@larksuiteoapi/node-sdk@1.62.0': + resolution: {integrity: sha512-ZITiuAkiVgphn6OPO8MHeWV1q7+UNByLmNiYVDIAxF5+HJ8USl4xPinDOq9AMJSEUqdBJtiLdz7UltV5jP+EDg==} '@lydell/node-pty-darwin-arm64@1.2.0-beta.12': resolution: {integrity: sha512-tqaifcY9Cr41SblO1+FLzh8oxxtkNhuW9Dhl22lKme9BreYvKvxEZcdPIXTuqkJc5tagOEC4QHShKmJjLyLXLQ==} @@ -1363,106 +1332,98 @@ packages: resolution: {integrity: sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==} engines: {node: '>= 10.0.0'} - '@mariozechner/clipboard-darwin-arm64@0.3.2': - resolution: {integrity: sha512-uBf6K7Je1ihsgvmWxA8UCGCeI+nbRVRXoarZdLjl6slz94Zs1tNKFZqx7aCI5O1i3e0B6ja82zZ06BWrl0MCVw==} + '@mariozechner/clipboard-darwin-arm64@0.3.3': + resolution: {integrity: sha512-+zhuZGXqVrdkbIRdnwiZNbTJ7V3elq/A+C5d5laJoyhJgWs41eO5NUMkBkj6f23F2L4PRXEhdn5/ktlPx+bG3Q==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@mariozechner/clipboard-darwin-universal@0.3.2': - resolution: {integrity: sha512-mxSheKTW2U9LsBdXy0SdmdCAE5HqNS9QUmpNHLnfJ+SsbFKALjEZc5oRrVMXxGQSirDvYf5bjmRyT0QYYonnlg==} + '@mariozechner/clipboard-darwin-universal@0.3.3': + resolution: {integrity: sha512-x9aRfTyndVqpEQ44LNNCK/EXZd9y8rWkLQgNhmWpby9PXrjPhNxfjUc2Db4mt4nJjU/4zzO8F5v/XyzlUGSdhQ==} engines: {node: '>= 10'} os: [darwin] - '@mariozechner/clipboard-darwin-x64@0.3.2': - resolution: {integrity: sha512-U1BcVEoidvwIp95+HJswSW+xr28EQiHR7rZjH6pn8Sja5yO4Yoe3yCN0Zm8Lo72BbSOK/fTSq0je7CJpaPCspg==} + '@mariozechner/clipboard-darwin-x64@0.3.3': + resolution: {integrity: sha512-6ut/NawB0KiYPCwrirgNp6Br62LntL978q7G6d/Rs2pmPvQb53bP96eUMYl+Y3a7Qk13bGZ4w9rVPFxRE9m9ag==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@mariozechner/clipboard-linux-arm64-gnu@0.3.2': - resolution: {integrity: sha512-BsinwG3yWTIjdgNCxsFlip7LkfwPk+ruw/aFCXHUg/fb5XC/Ksp+YMQ7u0LUtiKzIv/7LMXgZInJQH6gxbAaqQ==} + '@mariozechner/clipboard-linux-arm64-gnu@0.3.3': + resolution: {integrity: sha512-gf3dH4kBddU1AOyHVB53mjLUFfJAKlTmxTMw51jdeg7eE7IjfEBXVvM4bifMtBxbWkT0eA0FUZ1C0KQ6Z5l6pw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [glibc] - '@mariozechner/clipboard-linux-arm64-musl@0.3.2': - resolution: {integrity: sha512-0/Gi5Xq2V6goXBop19ePoHvXsmJD9SzFlO3S+d6+T2b+BlPcpOu3Oa0wTjl+cZrLAAEzA86aPNBI+VVAFDFPKw==} + '@mariozechner/clipboard-linux-arm64-musl@0.3.3': + resolution: {integrity: sha512-o1paj2+zmAQ/LaPS85XJCxhNowNQpxYM2cGY6pWvB5Kqmz6hZjl6CzDg5tbf1hZkn/Em6jpOaE2UtMxKdELBDA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [musl] - '@mariozechner/clipboard-linux-riscv64-gnu@0.3.2': - resolution: {integrity: sha512-2AFFiXB24qf0zOZsxI1GJGb9wQGlOJyN6UwoXqmKS3dpQi/l6ix30IzDDA4c4ZcCcx4D+9HLYXhC1w7Sov8pXA==} + '@mariozechner/clipboard-linux-riscv64-gnu@0.3.3': + resolution: {integrity: sha512-dkEhE4ekePJwMbBq9HP1//CFMNmDzA/iV9AXqBfvL5CWmmDIRXqh4A3YZt3tWO/HdMerX+xNCEiR7WiOsIG+UA==} engines: {node: '>= 10'} cpu: [riscv64] os: [linux] libc: [glibc] - '@mariozechner/clipboard-linux-x64-gnu@0.3.2': - resolution: {integrity: sha512-v6fVnsn7WMGg73Dab8QMwyFce7tzGfgEixKgzLP8f1GJqkJZi5zO4k4FOHzSgUufgLil63gnxvMpjWkgfeQN7A==} + '@mariozechner/clipboard-linux-x64-gnu@0.3.3': + resolution: {integrity: sha512-lT2yANtTLlEtFBIH3uGoRa/CQas/eBoLNi3qr9axQFoRgF4RGPSJ66yHOSnMECBneTIb1Iqv3UxokTfX27CdoQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [glibc] - '@mariozechner/clipboard-linux-x64-musl@0.3.2': - resolution: {integrity: sha512-xVUtnoMQ8v2JVyfJLKKXACA6avdnchdbBkTsZs8BgJQo29qwCp5NIHAUO8gbJ40iaEGToW5RlmVk2M9V0HsHEw==} + '@mariozechner/clipboard-linux-x64-musl@0.3.3': + resolution: {integrity: sha512-saq/MCB0QHK/7ZZLjAZ0QkbY944dyjOsur8gneGCfMitt+GOiE1CU4OUipHC4b6x8UDY9bRLsR4aBaxu22OFPA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [musl] - '@mariozechner/clipboard-win32-arm64-msvc@0.3.2': - resolution: {integrity: sha512-AEgg95TNi8TGgak2wSXZkXKCvAUTjWoU1Pqb0ON7JHrX78p616XUFNTJohtIon3e0w6k0pYPZeCuqRCza/Tqeg==} + '@mariozechner/clipboard-win32-arm64-msvc@0.3.3': + resolution: {integrity: sha512-cGuvSj0/2X2w983yEcKw+i+r1EBej6ZZIN+fXG3eY2G/HaIQpbXpLvMxKyZ9LKtbZx+Z6q/gELEoSBMLML6BaQ==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@mariozechner/clipboard-win32-x64-msvc@0.3.2': - resolution: {integrity: sha512-tGRuYpZwDOD7HBrCpyRuhGnHHSCknELvqwKKUG4JSfSB7JIU7LKRh6zx6fMUOQd8uISK35TjFg5UcNih+vJhFA==} + '@mariozechner/clipboard-win32-x64-msvc@0.3.3': + resolution: {integrity: sha512-5hvaEq/bgYovTIGx43O/S7loIHYV3ue90WcV1dz0wdMXroVKZKeU/yfwM0PALQA1OcrEHiGXGySFReXr72lGtA==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@mariozechner/clipboard@0.3.2': - resolution: {integrity: sha512-IHQpksNjo7EAtGuHFU+tbWDp5LarH3HU/8WiB9O70ZEoBPHOg0/6afwSLK0QyNMMmx4Bpi/zl6+DcBXe95nWYA==} + '@mariozechner/clipboard@0.3.3': + resolution: {integrity: sha512-e7jASirzfm+ROiOGFh843+cFZTy3DfzP+jldCvh8RnEk0C3QihDTn7dd7Yh7KAJydwIJ18FJSZ2swHvCJhk18g==} engines: {node: '>= 10'} '@mariozechner/jiti@2.6.5': resolution: {integrity: sha512-faGUlTcXka5l7rv0lP3K3vGW/ejRuOS24RR2aSFWREUQqzjgdsuWNo/IiPqL3kWRGt6Ahl2+qcDAwtdeWeuGUw==} hasBin: true - '@mariozechner/pi-agent-core@0.66.1': - resolution: {integrity: sha512-Nj54A7SuB/EQi8r3Gs+glFOr9wz/a9uxYFf0pCLf2DE7VmzA9O7WSejrvArna17K6auftLSdNyRRe2bIO0qezg==} + '@mariozechner/pi-agent-core@0.70.2': + resolution: {integrity: sha512-g1hIdKyDwmQOoBGO0R4OhpemKeMENeK0vE5FJtuQKqEcsdCAkVBgZAK6aZUARYZVxMA718JS6WPLFWoddzjD7g==} engines: {node: '>=20.0.0'} - '@mariozechner/pi-ai@0.66.1': - resolution: {integrity: sha512-7IZHvpsFdKEBkTmjNrdVL7JLUJVIpha6bwTr12cZ5XyDrxij06wP6Ncpnf4HT5BXAzD5w2JnoqTOSbMEIZj3dg==} + '@mariozechner/pi-ai@0.70.2': + resolution: {integrity: sha512-+30LRPjXsXF+oI96DvGWMbdPGeqoLJvadh6UPev7wx2DzhC9FEqXkQcoMZ0usbCm7E9pl8ua8a9s/pQ5ikaUbg==} engines: {node: '>=20.0.0'} hasBin: true - '@mariozechner/pi-coding-agent@0.66.1': - resolution: {integrity: sha512-cNmatT+5HvYzQ78cRhRih00wCeUTH/fFx9ecJh5AbN7axgWU+bwiZYy0cjrTsGVgMGF4xMYlPRn/Nze9JEB+/w==} + '@mariozechner/pi-coding-agent@0.70.2': + resolution: {integrity: sha512-asfNqV89HKAmKvJ1wENBY/UQMIf77kLtkzBrvXnMQV4YbH7D/6KT+VeVzPG6zm5PAZP2UtdLY9B9Cge7IxH37w==} engines: {node: '>=20.6.0'} hasBin: true - '@mariozechner/pi-tui@0.66.1': - resolution: {integrity: sha512-hNFN42ebjwtfGooqoUwM+QaPR1XCyqPuueuP3aLOWS1bZ2nZP/jq8MBuGNrmMw1cgiDcotvOlSNj3BatzEOGsw==} + '@mariozechner/pi-tui@0.70.2': + resolution: {integrity: sha512-PtKC0NepnrYcqMx6MXkWTrBzC9tI62KeC6w940oT46lCbfvgmfqXciR15+9BZpxxc1H4jd3CMrKsmOPVeUqZ0A==} engines: {node: '>=20.0.0'} - '@matrix-org/matrix-sdk-crypto-nodejs@0.4.0': - resolution: {integrity: sha512-+qqgpn39XFSbsD0dFjssGO9vHEP7sTyfs8yTpt8vuqWpUpF20QMwpCZi0jpYw7GxjErNTsMshopuo8677DfGEA==} - engines: {node: '>= 22'} - - '@matrix-org/matrix-sdk-crypto-wasm@18.0.0': - resolution: {integrity: sha512-88+n+dvxLI1cjS10UIlKXVYK7TGWbpAnnaDC9fow7ch/hCvdu3dFhJ3tS3/13N9s9+1QFXB4FFuommj+tHJPhQ==} - engines: {node: '>= 18'} - - '@mistralai/mistralai@1.14.1': - resolution: {integrity: sha512-IiLmmZFCCTReQgPAT33r7KQ1nYo5JPdvGkrkZqA8qQ2qB1GHgs5LoP5K2ICyrjnpw2n8oSxMM/VP+liiKcGNlQ==} + '@mistralai/mistralai@2.2.1': + resolution: {integrity: sha512-uKU8CZmL2RzYKmplsU01hii4p3pe4HqJefpWNRWXm1Tcm0Sm4xXfwSLIy4k7ZCPlbETCGcp69E7hZs+WOJ5itQ==} '@modelcontextprotocol/sdk@1.29.0': resolution: {integrity: sha512-zo37mZA9hJWpULgkRpowewez1y6ML5GsXJPY8FI0tBBCd77HEvza4jDqRKOXgHNn867PVGCyTdzqpz0izu5ZjQ==} @@ -1474,10 +1435,6 @@ packages: '@cfworker/json-schema': optional: true - '@mozilla/readability@0.6.0': - resolution: {integrity: sha512-juG5VWh4qAivzTAeMzvY9xs9HY5rAcr2E4I7tiSSCokRFi7XIZCAu92ZkSTsIj1OPceCifL3cpfteP3pDT9/QQ==} - engines: {node: '>=14.0.0'} - '@napi-rs/canvas-android-arm64@0.1.80': resolution: {integrity: sha512-sk7xhN/MoXeuExlggf91pNziBxLPVUqF2CAVnB57KLG/pz7+U5TKG8eXdc3pm0d7Od0WreB6ZKLj37sX9muGOQ==} engines: {node: '>= 10'} @@ -1622,20 +1579,12 @@ packages: resolution: {integrity: sha512-8cFniXvrIEnVwuNSRCW9wirRZbHvrD3JVujdS2P5n5xiJZNZMOZcfOvJ1pb66c7jXMKHHglJEDVJGbm8XWFcXQ==} engines: {node: '>= 10'} - '@napi-rs/wasm-runtime@1.1.3': - resolution: {integrity: sha512-xK9sGVbJWYb08+mTJt3/YV24WxvxpXcXtP6B172paPZ+Ts69Re9dAr7lKwJoeIx8OoeuimEiRZ7umkiUVClmmQ==} + '@napi-rs/wasm-runtime@1.1.4': + resolution: {integrity: sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==} peerDependencies: '@emnapi/core': ^1.7.1 '@emnapi/runtime': ^1.7.1 - '@noble/ciphers@2.1.1': - resolution: {integrity: sha512-bysYuiVfhxNJuldNXlFEitTVdNnYUc+XNJZd7Qm2a5j1vZHgY+fazadNFWFaMK/2vye0JVlxV3gHmC0WDfAOQw==} - engines: {node: '>= 20.19.0'} - - '@noble/curves@2.0.1': - resolution: {integrity: sha512-vs1Az2OOTBiP4q0pwjW5aF0xp9n4MxVrmkFBxc6EKZc6ddYx5gaZiAsZoq0uRRXWbi3AT/sBqn05eRPtn1JCPw==} - engines: {node: '>= 20.19.0'} - '@noble/hashes@2.0.1': resolution: {integrity: sha512-XlOlEbQcE9fmuXxrVTXCTlG2nlRXa9Rj3rr5Ue/+tX+nmkgbX720YHh0VR3hBF9xDvwnb8D2shVGOwNx+ulArw==} engines: {node: '>= 20.19.0'} @@ -1660,16 +1609,6 @@ packages: resolution: {integrity: sha512-/xGlezI6xfGO9NwuJlnwz/K14qD1kCSAGtacBHnGzeAIuJGazcp45KP5NuyARXoKb7cwulAGWVsbeSxdG/cb0Q==} engines: {node: ^18.17.0 || >=20.5.0} - '@pierre/diffs@1.1.13': - resolution: {integrity: sha512-lnX9Fy5eC+07b8g+D8krC3txOY6LRN5VNR1qr9bph9XEyLxbwwfGN7SFRu4HGozpkDdA76JARgxgWHN+uAihmg==} - peerDependencies: - react: ^18.3.1 || ^19.0.0 - react-dom: ^18.3.1 || ^19.0.0 - - '@pierre/theme@0.0.28': - resolution: {integrity: sha512-1j/H/fECBuc9dEvntdWI+l435HZapw+RCJTlqCA6BboQ5TjlnE005j/ROWutXIs8aq5OAc82JI2Kwk4A1WWBgw==} - engines: {vscode: ^1.0.0} - '@pinojs/redact@0.4.0': resolution: {integrity: sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg==} @@ -2308,120 +2247,58 @@ packages: cpu: [x64] os: [win32] - '@scure/base@2.0.0': - resolution: {integrity: sha512-3E1kpuZginKkek01ovG8krQ0Z44E3DHPjc5S2rjJw9lZn3KSQOs8S7wqikF/AH7iRanHypj85uGyxk0XAyC37w==} - - '@scure/bip32@2.0.1': - resolution: {integrity: sha512-4Md1NI5BzoVP+bhyJaY3K6yMesEFzNS1sE/cP+9nuvE7p/b0kx9XbpDHHFl8dHtufcbdHRUUQdRqLIPHN/s7yA==} - - '@scure/bip39@2.0.1': - resolution: {integrity: sha512-PsxdFj/d2AcJcZDX1FXN3dDgitDDTmwf78rKZq1a6c1P1Nan1X/Sxc7667zU3U+AN60g7SxxP0YCVw2H/hBycg==} - - '@shikijs/core@3.23.0': - resolution: {integrity: sha512-NSWQz0riNb67xthdm5br6lAkvpDJRTgB36fxlo37ZzM2yq0PQFFzbd8psqC2XMPgCzo1fW6cVi18+ArJ44wqgA==} - - '@shikijs/engine-javascript@3.23.0': - resolution: {integrity: sha512-aHt9eiGFobmWR5uqJUViySI1bHMqrAgamWE1TYSUoftkAeCCAiGawPMwM+VCadylQtF4V3VNOZ5LmfItH5f3yA==} - - '@shikijs/engine-oniguruma@3.23.0': - resolution: {integrity: sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g==} - - '@shikijs/langs@3.23.0': - resolution: {integrity: sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg==} - - '@shikijs/themes@3.23.0': - resolution: {integrity: sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA==} - - '@shikijs/transformers@3.23.0': - resolution: {integrity: sha512-F9msZVxdF+krQNSdQ4V+Ja5QemeAoTQ2jxt7nJCwhDsdF1JWS3KxIQXA3lQbyKwS3J61oHRUSv4jYWv3CkaKTQ==} - - '@shikijs/types@3.23.0': - resolution: {integrity: sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ==} - - '@shikijs/vscode-textmate@10.0.2': - resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} - '@silvia-odwyer/photon-node@0.3.4': resolution: {integrity: sha512-bnly4BKB3KDTFxrUIcgCLbaeVVS8lrAkri1pEzskpmxu9MdfGQTy8b8EgcD83ywD3RPMsIulY8xJH5Awa+t9fA==} '@sinclair/typebox@0.34.48': resolution: {integrity: sha512-kKJTNuK3AQOrgjjotVxMrCn1sUJwM76wMszfq1kdU4uYVJjvEWuFQ6HgvLt4Xz3fSmZlTOxJ/Ie13KnIcWQXFA==} - '@sinclair/typebox@0.34.49': - resolution: {integrity: sha512-brySQQs7Jtn0joV8Xh9ZV/hZb9Ozb0pmazDIASBkYKCjXrXU3mpcFahmK/z4YDhGkQvP9mWJbVyahdtU5wQA+A==} - '@sindresorhus/is@4.6.0': resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} engines: {node: '>=10'} - '@slack/bolt@4.7.0': - resolution: {integrity: sha512-Xpf+gKegNvkHpft1z4YiuqZdciJ3tUp1bIRQxylW30Ovf+hzjb0M1zTHVtJsRw9jsjPxHTPoyanEXVvG6qVE1g==} - engines: {node: '>=18', npm: '>=8.6.0'} - peerDependencies: - '@types/express': ^5.0.0 - - '@slack/logger@4.0.1': - resolution: {integrity: sha512-6cmdPrV/RYfd2U0mDGiMK8S7OJqpCTm7enMLRR3edccsPX8j7zXTLnaEF4fhxxJJTAIOil6+qZrnUPTuaLvwrQ==} - engines: {node: '>= 18', npm: '>= 8.6.0'} - - '@slack/oauth@3.0.5': - resolution: {integrity: sha512-exqFQySKhNDptWYSWhvRUJ4/+ndu2gayIy7vg/JfmJq3wGtGdHk531P96fAZyBm5c1Le3yaPYqv92rL4COlU3A==} - engines: {node: '>=18', npm: '>=8.6.0'} - - '@slack/socket-mode@2.0.6': - resolution: {integrity: sha512-Aj5RO3MoYVJ+b2tUjHUXuA3tiIaCUMOf1Ss5tPiz29XYVUi6qNac2A8ulcU1pUPERpXVHTmT1XW6HzQIO74daQ==} - engines: {node: '>= 18', npm: '>= 8.6.0'} - - '@slack/types@2.20.1': - resolution: {integrity: sha512-eWX2mdt1ktpn8+40iiMc404uGrih+2fxiky3zBcPjtXKj6HLRdYlmhrPkJi7JTJm8dpXR6BWVWEDBXtaWMKD6A==} - engines: {node: '>= 12.13.0', npm: '>= 6.12.0'} - - '@slack/web-api@7.15.0': - resolution: {integrity: sha512-va7zYIt3QHG1x9M/jqXXRPFMoOVlVSSRHC5YH+DzKYsrz5xUKOA3lR4THsu/Zxha9N1jOndbKFKLtr0WOPW1Vw==} - engines: {node: '>= 18', npm: '>= 8.6.0'} - - '@smithy/config-resolver@4.4.14': - resolution: {integrity: sha512-N55f8mPEccpzKetUagdvmAy8oohf0J5cuj9jLI1TaSceRlq0pJsIZepY3kmAXAhyxqXPV6hDerDQhqQPKWgAoQ==} + '@smithy/config-resolver@4.4.17': + resolution: {integrity: sha512-TzDZcAnhTyAHbXVxWZo7/tEcrIeFq20IBk8So3OLOetWpR8EwY/yEqBMBFaJMeyEiREDq4NfEl+qO3OAUD+vbQ==} engines: {node: '>=18.0.0'} - '@smithy/core@3.23.14': - resolution: {integrity: sha512-vJ0IhpZxZAkFYOegMKSrxw7ujhhT2pass/1UEcZ4kfl5srTAqtPU5I7MdYQoreVas3204ykCiNhY1o7Xlz6Yyg==} + '@smithy/core@3.23.16': + resolution: {integrity: sha512-JStomOrINQA1VqNEopLsgcdgwd42au7mykKqVr30XFw89wLt9sDxJDi4djVPRwQmmzyTGy/uOvTc2ultMpFi1w==} engines: {node: '>=18.0.0'} - '@smithy/credential-provider-imds@4.2.13': - resolution: {integrity: sha512-wboCPijzf6RJKLOvnjDAiBxGSmSnGXj35o5ZAWKDaHa/cvQ5U3ZJ13D4tMCE8JG4dxVAZFy/P0x/V9CwwdfULQ==} + '@smithy/credential-provider-imds@4.2.14': + resolution: {integrity: sha512-Au28zBN48ZAoXdooGUHemuVBrkE+Ie6RPmGNIAJsFqj33Vhb6xAgRifUydZ2aY+M+KaMAETAlKk5NC5h1G7wpg==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-codec@4.2.13': - resolution: {integrity: sha512-vYahwBAtRaAcFbOmE9aLr12z7RiHYDSLcnogSdxfm7kKfsNa3wH+NU5r7vTeB5rKvLsWyPjVX8iH94brP7umiQ==} + '@smithy/eventstream-codec@4.2.14': + resolution: {integrity: sha512-erZq0nOIpzfeZdCyzZjdJb4nVSKLUmSkaQUVkRGQTXs30gyUGeKnrYEg+Xe1W5gE3aReS7IgsvANwVPxSzY6Pw==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-browser@4.2.13': - resolution: {integrity: sha512-wwybfcOX0tLqCcBP378TIU9IqrDuZq/tDV48LlZNydMpCnqnYr+hWBAYbRE+rFFf/p7IkDJySM3bgiMKP2ihPg==} + '@smithy/eventstream-serde-browser@4.2.14': + resolution: {integrity: sha512-8IelTCtTctWRbb+0Dcy+C0aICh1qa0qWXqgjcXDmMuCvPJRnv26hiDZoAau2ILOniki65mCPKqOQs/BaWvO4CQ==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-config-resolver@4.3.13': - resolution: {integrity: sha512-ied1lO559PtAsMJzg2TKRlctLnEi1PfkNeMMpdwXDImk1zV9uvS/Oxoy/vcy9uv1GKZAjDAB5xT6ziE9fzm5wA==} + '@smithy/eventstream-serde-config-resolver@4.3.14': + resolution: {integrity: sha512-sqHiHpYRYo3FJlaIxD1J8PhbcmJAm7IuM16mVnwSkCToD7g00IBZzKuiLNMGmftULmEUX6/UAz8/NN5uMP8bVA==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-node@4.2.13': - resolution: {integrity: sha512-hFyK+ORJrxAN3RYoaD6+gsGDQjeix8HOEkosoajvXYZ4VeqonM3G4jd9IIRm/sWGXUKmudkY9KdYjzosUqdM8A==} + '@smithy/eventstream-serde-node@4.2.14': + resolution: {integrity: sha512-Ht/8BuGlKfFTy0H3+8eEu0vdpwGztCnaLLXtpXNdQqiR7Hj4vFScU3T436vRAjATglOIPjJXronY+1WxxNLSiw==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-universal@4.2.13': - resolution: {integrity: sha512-kRrq4EKLGeOxhC2CBEhRNcu1KSzNJzYY7RK3S7CxMPgB5dRrv55WqQOtRwQxQLC04xqORFLUgnDlc6xrNUULaA==} + '@smithy/eventstream-serde-universal@4.2.14': + resolution: {integrity: sha512-lWyt4T2XQZUZgK3tQ3Wn0w3XBvZsK/vjTuJl6bXbnGZBHH0ZUSONTYiK9TgjTTzU54xQr3DRFwpjmhp0oLm3gg==} engines: {node: '>=18.0.0'} - '@smithy/fetch-http-handler@5.3.16': - resolution: {integrity: sha512-nYDRUIvNd4mFmuXraRWt6w5UsZTNqtj4hXJA/iiOD4tuseIdLP9Lq38teH/SZTcIFCa2f+27o7hYpIsWktJKEQ==} + '@smithy/fetch-http-handler@5.3.17': + resolution: {integrity: sha512-bXOvQzaSm6MnmLaWA1elgfQcAtN4UP3vXqV97bHuoOrHQOJiLT3ds6o9eo5bqd0TJfRFpzdGnDQdW3FACiAVdw==} engines: {node: '>=18.0.0'} - '@smithy/hash-node@4.2.13': - resolution: {integrity: sha512-4/oy9h0jjmY80a2gOIo75iLl8TOPhmtx4E2Hz+PfMjvx/vLtGY4TMU/35WRyH2JHPfT5CVB38u4JRow7gnmzJA==} + '@smithy/hash-node@4.2.14': + resolution: {integrity: sha512-8ZBDY2DD4wr+GGjTpPtiglEsqr0lUP+KHqgZcWczFf6qeZ/YRjMIOoQWVQlmwu7EtxKTd8YXD8lblmYcpBIA1g==} engines: {node: '>=18.0.0'} - '@smithy/invalid-dependency@4.2.13': - resolution: {integrity: sha512-jvC0RB/8BLj2SMIkY0Npl425IdnxZJxInpZJbu563zIRnVjpDMXevU3VMCRSabaLB0kf/eFIOusdGstrLJ8IDg==} + '@smithy/invalid-dependency@4.2.14': + resolution: {integrity: sha512-c21qJiTSb25xvvOp+H2TNZzPCngrvl5vIPqPB8zQ/DmJF4QWXO19x1dWfMJZ6wZuuWUPPm0gV8C0cU3+ifcWuw==} engines: {node: '>=18.0.0'} '@smithy/is-array-buffer@2.2.0': @@ -2432,72 +2309,72 @@ packages: resolution: {integrity: sha512-n6rQ4N8Jj4YTQO3YFrlgZuwKodf4zUFs7EJIWH86pSCWBaAtAGBFfCM7Wx6D2bBJ2xqFNxGBSrUWswT3M0VJow==} engines: {node: '>=18.0.0'} - '@smithy/middleware-content-length@4.2.13': - resolution: {integrity: sha512-IPMLm/LE4AZwu6qiE8Rr8vJsWhs9AtOdySRXrOM7xnvclp77Tyh7hMs/FRrMf26kgIe67vFJXXOSmVxS7oKeig==} + '@smithy/middleware-content-length@4.2.14': + resolution: {integrity: sha512-xhHq7fX4/3lv5NHxLUk3OeEvl0xZ+Ek3qIbWaCL4f9JwgDZEclPBElljaZCAItdGPQl/kSM4LPMOpy1MYgprpw==} engines: {node: '>=18.0.0'} - '@smithy/middleware-endpoint@4.4.29': - resolution: {integrity: sha512-R9Q/58U+qBiSARGWbAbFLczECg/RmysRksX6Q8BaQEpt75I7LI6WGDZnjuC9GXSGKljEbA7N118LhGaMbfrTXw==} + '@smithy/middleware-endpoint@4.4.31': + resolution: {integrity: sha512-KJPdCIN2kOE2aGmqZd7eUTr4WQwOGgtLWgUkswGJggs7rBcQYQjcZMEDa3C0DwbOiXS9L8/wDoQHkfxBYLfiLw==} engines: {node: '>=18.0.0'} - '@smithy/middleware-retry@4.5.0': - resolution: {integrity: sha512-/NzISn4grj/BRFVua/xnQwF+7fakYZgimpw2dfmlPgcqecBMKxpB9g5mLYRrmBD5OrPoODokw4Vi1hrSR4zRyw==} + '@smithy/middleware-retry@4.5.4': + resolution: {integrity: sha512-/z7nIFK+ZRW3Ie/l3NEVGdy34LvmEOzBrtBAvgWZ/4PrKX0xP3kWm8pkfcwUk523SqxZhdbQP9JSXgjF77Uhpw==} engines: {node: '>=18.0.0'} - '@smithy/middleware-serde@4.2.17': - resolution: {integrity: sha512-0T2mcaM6v9W1xku86Dk0bEW7aEseG6KenFkPK98XNw0ZhOqOiD1MrMsdnQw9QsL3/Oa85T53iSMlm0SZdSuIEQ==} + '@smithy/middleware-serde@4.2.19': + resolution: {integrity: sha512-Q6y+W9h3iYVMCKWDoVge+OC1LKFqbEKaq8SIWG2X2bWJRpd/6dDLyICcNLT6PbjH3Rr6bmg/SeDB25XFOFfeEw==} engines: {node: '>=18.0.0'} - '@smithy/middleware-stack@4.2.13': - resolution: {integrity: sha512-g72jN/sGDLyTanrCLH9fhg3oysO3f7tQa6eWWsMyn2BiYNCgjF24n4/I9wff/5XidFvjj9ilipAoQrurTUrLvw==} + '@smithy/middleware-stack@4.2.14': + resolution: {integrity: sha512-2dvkUKLuFdKsCRmOE4Mn63co0Djtsm+JMh0bYZQupN1pJwMeE8FmQmRLLzzEMN0dnNi7CDCYYH8F0EVwWiPBeA==} engines: {node: '>=18.0.0'} - '@smithy/node-config-provider@4.3.13': - resolution: {integrity: sha512-iGxQ04DsKXLckbgnX4ipElrOTk+IHgTyu0q0WssZfYhDm9CQWHmu6cOeI5wmWRxpXbBDhIIfXMWz5tPEtcVqbw==} + '@smithy/node-config-provider@4.3.14': + resolution: {integrity: sha512-S+gFjyo/weSVL0P1b9Ts8C/CwIfNCgUPikk3sl6QVsfE/uUuO+QsF+NsE/JkpvWqqyz1wg7HFdiaZuj5CoBMRg==} engines: {node: '>=18.0.0'} - '@smithy/node-http-handler@4.5.2': - resolution: {integrity: sha512-/oD7u8M0oj2ZTFw7GkuuHWpIxtWdLlnyNkbrWcyVYhd5RJNDuczdkb0wfnQICyNFrVPlr8YHOhamjNy3zidhmA==} + '@smithy/node-http-handler@4.6.0': + resolution: {integrity: sha512-P734cAoTFtuGfWa/R3jgBnGlURt2w9bYEBwQNMKf58sRM9RShirB2mKwLsVP+jlG/wxpCu8abv8NxdUts8tdLA==} engines: {node: '>=18.0.0'} - '@smithy/property-provider@4.2.13': - resolution: {integrity: sha512-bGzUCthxRmezuxkbu9wD33wWg9KX3hJpCXpQ93vVkPrHn9ZW6KNNdY5xAUWNuRCwQ+VyboFuWirG1lZhhkcyRQ==} + '@smithy/property-provider@4.2.14': + resolution: {integrity: sha512-WuM31CgfsnQ/10i7NYr0PyxqknD72Y5uMfUMVSniPjbEPceiTErb4eIqJQ+pdxNEAUEWrewrGjIRjVbVHsxZiQ==} engines: {node: '>=18.0.0'} - '@smithy/protocol-http@5.3.13': - resolution: {integrity: sha512-+HsmuJUF4u8POo6s8/a2Yb/AQ5t/YgLovCuHF9oxbocqv+SZ6gd8lC2duBFiCA/vFHoHQhoq7QjqJqZC6xOxxg==} + '@smithy/protocol-http@5.3.14': + resolution: {integrity: sha512-dN5F8kHx8RNU0r+pCwNmFZyz6ChjMkzShy/zup6MtkRmmix4vZzJdW+di7x//b1LiynIev88FM18ie+wwPcQtQ==} engines: {node: '>=18.0.0'} - '@smithy/querystring-builder@4.2.13': - resolution: {integrity: sha512-tG4aOYFCZdPMjbgfhnIQ322H//ojujldp1SrHPHpBSb3NqgUp3dwiUGRJzie87hS1DYwWGqDuPaowoDF+rYCbQ==} + '@smithy/querystring-builder@4.2.14': + resolution: {integrity: sha512-XYA5Z0IqTeF+5XDdh4BBmSA0HvbgVZIyv4cmOoUheDNR57K1HgBp9ukUMx3Cr3XpDHHpLBnexPE3LAtDsZkj2A==} engines: {node: '>=18.0.0'} - '@smithy/querystring-parser@4.2.13': - resolution: {integrity: sha512-hqW3Q4P+CDzUyQ87GrboGMeD7XYNMOF+CuTwu936UQRB/zeYn3jys8C3w+wMkDfY7CyyyVwZQ5cNFoG0x1pYmA==} + '@smithy/querystring-parser@4.2.14': + resolution: {integrity: sha512-hr+YyqBD23GVvRxGGrcc/oOeNlK3PzT5Fu4dzrDXxzS1LpFiuL2PQQqKPs87M79aW7ziMs+nvB3qdw77SqE7Lw==} engines: {node: '>=18.0.0'} - '@smithy/service-error-classification@4.2.13': - resolution: {integrity: sha512-a0s8XZMfOC/qpqq7RCPvJlk93rWFrElH6O++8WJKz0FqnA4Y7fkNi/0mnGgSH1C4x6MFsuBA8VKu4zxFrMe5Vw==} + '@smithy/service-error-classification@4.3.0': + resolution: {integrity: sha512-9jKsBYQRPR0xBLgc2415RsA5PIcP2sis4oBdN9s0D13cg1B1284mNTjx9Yc+BEERXzuPm5ObktI96OxsKh8E9A==} engines: {node: '>=18.0.0'} - '@smithy/shared-ini-file-loader@4.4.8': - resolution: {integrity: sha512-VZCZx2bZasxdqxVgEAhREvDSlkatTPnkdWy1+Kiy8w7kYPBosW0V5IeDwzDUMvWBt56zpK658rx1cOBFOYaPaw==} + '@smithy/shared-ini-file-loader@4.4.9': + resolution: {integrity: sha512-495/V2I15SHgedSJoDPD23JuSfKAp726ZI1V0wtjB07Wh7q/0tri/0e0DLefZCHgxZonrGKt/OCTpAtP1wE1kQ==} engines: {node: '>=18.0.0'} - '@smithy/signature-v4@5.3.13': - resolution: {integrity: sha512-YpYSyM0vMDwKbHD/JA7bVOF6kToVRpa+FM5ateEVRpsTNu564g1muBlkTubXhSKKYXInhpADF46FPyrZcTLpXg==} + '@smithy/signature-v4@5.3.14': + resolution: {integrity: sha512-1D9Y/nmlVjCeSivCbhZ7hgEpmHyY1h0GvpSZt3l0xcD9JjmjVC1CHOozS6+Gh+/ldMH8JuJ6cujObQqfayAVFA==} engines: {node: '>=18.0.0'} - '@smithy/smithy-client@4.12.9': - resolution: {integrity: sha512-ovaLEcTU5olSeHcRXcxV6viaKtpkHZumn6Ps0yn7dRf2rRSfy794vpjOtrWDO0d1auDSvAqxO+lyhERSXQ03EQ==} + '@smithy/smithy-client@4.12.12': + resolution: {integrity: sha512-daO7SJn4eM6ArbmrEs+/BTbH7af8AEbSL3OMQdcRvvn8tuUcR5rU2n6DgxIV53aXMS42uwK8NgKKCh5XgqYOPQ==} engines: {node: '>=18.0.0'} - '@smithy/types@4.14.0': - resolution: {integrity: sha512-OWgntFLW88kx2qvf/c/67Vno1yuXm/f9M7QFAtVkkO29IJXGBIg0ycEaBTH0kvCtwmvZxRujrgP5a86RvsXJAQ==} + '@smithy/types@4.14.1': + resolution: {integrity: sha512-59b5HtSVrVR/eYNei3BUj3DCPKD/G7EtDDe7OEJE7i7FtQFugYo6MxbotS8mVJkLNVf8gYaAlEBwwtJ9HzhWSg==} engines: {node: '>=18.0.0'} - '@smithy/url-parser@4.2.13': - resolution: {integrity: sha512-2G03yoboIRZlZze2+PT4GZEjgwQsJjUgn6iTsvxA02bVceHR6vp4Cuk7TUnPFWKF+ffNUk3kj4COwkENS2K3vw==} + '@smithy/url-parser@4.2.14': + resolution: {integrity: sha512-p06BiBigJ8bTA3MgnOfCtDUWnAMY0YfedO/GRpmc7p+wg3KW8vbXy1xwSu5ASy0wV7rRYtlfZOIKH4XqfhjSQQ==} engines: {node: '>=18.0.0'} '@smithy/util-base64@4.3.2': @@ -2524,32 +2401,32 @@ packages: resolution: {integrity: sha512-dWU03V3XUprJwaUIFVv4iOnS1FC9HnMHDfUrlNDSh4315v0cWyaIErP8KiqGVbf5z+JupoVpNM7ZB3jFiTejvQ==} engines: {node: '>=18.0.0'} - '@smithy/util-defaults-mode-browser@4.3.45': - resolution: {integrity: sha512-ag9sWc6/nWZAuK3Wm9KlFJUnRkXLrXn33RFjIAmCTFThqLHY+7wCst10BGq56FxslsDrjhSie46c8OULS+BiIw==} + '@smithy/util-defaults-mode-browser@4.3.48': + resolution: {integrity: sha512-hxVRVPYaRDWa6YQdse1aWX1qrksmLsvNyGBKdc32q4jFzSjxYVNWfstknAfR228TnzS4tzgswXRuYIbhXBuXFQ==} engines: {node: '>=18.0.0'} - '@smithy/util-defaults-mode-node@4.2.49': - resolution: {integrity: sha512-jlN6vHwE8gY5AfiFBavtD3QtCX2f7lM3BKkz7nFKSNfFR5nXLXLg6sqXTJEEyDwtxbztIDBQCfjsGVXlIru2lQ==} + '@smithy/util-defaults-mode-node@4.2.53': + resolution: {integrity: sha512-ybgCk+9JdBq8pYC8Y6U5fjyS8e4sboyAShetxPNL0rRBtaVl56GSFAxsolVBIea1tXR4LPIzL8i6xqmcf0+DCQ==} engines: {node: '>=18.0.0'} - '@smithy/util-endpoints@3.3.4': - resolution: {integrity: sha512-BKoR/ubPp9KNKFxPpg1J28N1+bgu8NGAtJblBP7yHy8yQPBWhIAv9+l92SlQLpolGm71CVO+btB60gTgzT0wog==} + '@smithy/util-endpoints@3.4.2': + resolution: {integrity: sha512-a55Tr+3OKld4TTtnT+RhKOQHyPxm3j/xL4OR83WBUhLJaKDS9dnJ7arRMOp3t31dcLhApwG9bgvrRXBHlLdIkg==} engines: {node: '>=18.0.0'} '@smithy/util-hex-encoding@4.2.2': resolution: {integrity: sha512-Qcz3W5vuHK4sLQdyT93k/rfrUwdJ8/HZ+nMUOyGdpeGA1Wxt65zYwi3oEl9kOM+RswvYq90fzkNDahPS8K0OIg==} engines: {node: '>=18.0.0'} - '@smithy/util-middleware@4.2.13': - resolution: {integrity: sha512-GTooyrlmRTqvUen4eK7/K1p6kryF7bnDfq6XsAbIsf2mo51B/utaH+XThY6dKgNCWzMAaH/+OLmqaBuLhLWRow==} + '@smithy/util-middleware@4.2.14': + resolution: {integrity: sha512-1Su2vj9RYNDEv/V+2E+jXkkwGsgR7dc4sfHn9Z7ruzQHJIEni9zzw5CauvRXlFJfmgcqYP8fWa0dkh2Q2YaQyw==} engines: {node: '>=18.0.0'} - '@smithy/util-retry@4.3.0': - resolution: {integrity: sha512-tSOPQNT/4KfbvqeMovWC3g23KSYy8czHd3tlN+tOYVNIDLSfxIsrPJihYi5TpNcoV789KWtgChUVedh2y6dDPg==} + '@smithy/util-retry@4.3.3': + resolution: {integrity: sha512-idjUvd4M9Jj6rXkhqw4H4reHoweuK4ZxYWyOrEp4N2rOF5VtaOlQGLDQJva/8WanNXk9ScQtsAb7o5UHGvFm4A==} engines: {node: '>=18.0.0'} - '@smithy/util-stream@4.5.22': - resolution: {integrity: sha512-3H8iq/0BfQjUs2/4fbHZ9aG9yNzcuZs24LPkcX1Q7Z+qpqaGM8+qbGmE8zo9m2nCRgamyvS98cHdcWvR6YUsew==} + '@smithy/util-stream@4.5.24': + resolution: {integrity: sha512-na5vv2mBSDzXewLEEoWGI7LQQkfpmFEomBsmOpzLFjqGctm0iMwXY5lAwesY9pIaErkccW0qzEOUcYP+WKneXg==} engines: {node: '>=18.0.0'} '@smithy/util-uri-escape@4.2.2': @@ -2670,15 +2547,16 @@ packages: '@standard-schema/spec@1.1.0': resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} - '@swc/helpers@0.5.21': - resolution: {integrity: sha512-jI/VAmtdjB/RnI8GTnokyX7Ug8c+g+ffD6QRLa6XQewtnGyukKkKSk3wLTM3b5cjt1jNh9x0jfVlagdN2gDKQg==} - '@szmarczak/http-timer@4.0.6': resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} engines: {node: '>=10'} - '@tencent-weixin/openclaw-weixin@2.1.8': - resolution: {integrity: sha512-YM2fumDI+NvslhFH4gsek+scgCwTdyz7eMDyfNadCTXPjh9hoosn8tcMF0P90gQJEGEud7AJXiKKd8IKGNCfRA==} + '@tencent-connect/qqbot-connector@1.1.0': + resolution: {integrity: sha512-3nQ2mdyzPRKpBHjd3QiKZDwNzw1F7fBN+rSq8Xms2gg+JWZR4SY2Zdf+doqTyXdyVjG4Y0QM7IA4U42zT9xxzw==} + engines: {node: '>=18.0.0'} + + '@tencent-weixin/openclaw-weixin@2.1.9': + resolution: {integrity: sha512-5dLvKCFebSMRNQ2l0Lqx78gyuL0Msdg1NVmcN6fuxtZiaQiOx4IkIl8+9WPN+e26jR8XM5qIfW2sgf7pe7M1ew==} engines: {node: '>=22'} '@testing-library/dom@10.4.1': @@ -2732,9 +2610,6 @@ packages: '@types/babel__traverse@7.28.0': resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} - '@types/body-parser@1.19.6': - resolution: {integrity: sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==} - '@types/bun@1.3.11': resolution: {integrity: sha512-5vPne5QvtpjGpsGYXiFyycfpDF2ECyPcTSsFBMa0fraoxiQyMJ3SmuQIGhzPg2WJuWxVBoxWJ2kClYTcw/4fAg==} @@ -2744,15 +2619,6 @@ packages: '@types/chai@5.2.3': resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} - '@types/command-line-args@5.2.3': - resolution: {integrity: sha512-uv0aG6R0Y8WHZLTamZwtfsDLVRnOa+n+n5rEvFWL5Na5gZ8V2Teab/duDPFzIIIhs9qizDpcavCusCLJZu62Kw==} - - '@types/command-line-usage@5.0.4': - resolution: {integrity: sha512-BwR5KP3Es/CSht0xqBcUXS3qCAUVXwpRKsV2+arxeb65atasuXG9LykC9Ab10Cw3s2raH92ZqOeILaQbsB2ACg==} - - '@types/connect@3.4.38': - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} - '@types/debug@4.1.13': resolution: {integrity: sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==} @@ -2768,15 +2634,6 @@ packages: '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} - '@types/events@3.0.3': - resolution: {integrity: sha512-trOc4AAUThEz9hapPtSd7wf5tiQKvTtu5b371UxXdTuqzIh0ArcRspRP0i0Viu+LXstIQ1z96t1nsPxT9ol01g==} - - '@types/express-serve-static-core@5.1.1': - resolution: {integrity: sha512-v4zIMr/cX7/d2BpAEX3KNKL/JrT1s43s96lLvvdTmza1oEvDudCqK9aF/djc/SWgy8Yh0h30TZx5VpzqFCxk5A==} - - '@types/express@5.0.6': - resolution: {integrity: sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==} - '@types/fs-extra@9.0.13': resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} @@ -2786,15 +2643,9 @@ packages: '@types/http-cache-semantics@4.2.0': resolution: {integrity: sha512-L3LgimLHXtGkWikKnsPg0/VFx9OGZaC+eN1u4r+OB1XRqH3meBIAVC2zr1WdMH+RHmnRkqliQAOHNJ/E0j/e0Q==} - '@types/http-errors@2.0.5': - resolution: {integrity: sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==} - '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/jsonwebtoken@9.0.10': - resolution: {integrity: sha512-asx5hIG9Qmf/1oStypjanR7iKTv0gXQ1Ov/jfrX6kS/EO0OFni8orbmGCn0672NHR3kXHwpAwR+B368ZGN/2rA==} - '@types/katex@0.16.8': resolution: {integrity: sha512-trgaNyfU+Xh2Tc+ABIb44a5AYUpicB3uwirOioeOkNPPbmgRNtcWyDeeFRzjPZENO9Vq8gvVqfhaaXWLlevVwg==} @@ -2819,9 +2670,6 @@ packages: '@types/node@16.9.1': resolution: {integrity: sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==} - '@types/node@20.19.39': - resolution: {integrity: sha512-orrrD74MBUyK8jOAD/r0+lfa1I2MO6I+vAkmAWzMYbCcgrN4lCrmK52gRFQq/JRxfYPfonkr4b0jcY7Olqdqbw==} - '@types/node@24.12.0': resolution: {integrity: sha512-GYDxsZi3ChgmckRT9HPU0WEhKLP08ev/Yfcq2AstjrDASOYCSXeyjDsHg4v5t4jOj7cyDX3vmprafKlWIG9MXQ==} @@ -2834,12 +2682,6 @@ packages: '@types/plist@3.0.5': resolution: {integrity: sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA==} - '@types/qs@6.15.0': - resolution: {integrity: sha512-JawvT8iBVWpzTrz3EGw9BTQFg3BQNmwERdKE22vlTxawwtbyUSlMppvZYKLZzB5zgACXdXxbD3m1bXaMqP/9ow==} - - '@types/range-parser@1.2.7': - resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - '@types/react-dom@19.2.3': resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==} peerDependencies: @@ -2854,12 +2696,6 @@ packages: '@types/retry@0.12.0': resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} - '@types/send@1.2.1': - resolution: {integrity: sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==} - - '@types/serve-static@2.2.0': - resolution: {integrity: sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==} - '@types/unist@2.0.11': resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} @@ -2937,6 +2773,11 @@ packages: '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + '@vincentkoc/qrcode-tui@0.2.1': + resolution: {integrity: sha512-F2XVHMfasJ0q8G93gtcyU9Px0wMH6o6nIZLrZYSHc6dm9Pq3oCbHuVYYG/UQvJD0rhrGH3P9B6qgpCAqSDUw5w==} + engines: {node: '>=20'} + hasBin: true + '@vitejs/plugin-react@5.2.0': resolution: {integrity: sha512-YmKkfhOAi3wsB1PhJq5Scj3GXMn3WvtQ/JC0xoopuHoXSdmtdStOpFrYaT1kie2YgFBcIe64ROzMYRjCrYOdYw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2978,8 +2819,8 @@ packages: '@wecom/aibot-node-sdk@1.0.6': resolution: {integrity: sha512-WZJN3Q+s+94Qjc0VW8d5W1cVkA3emYxiqf+mNRO9UEHoF40puHvizreNMtudjFhm7mmkYiK5ue/QzNiCk+xwLA==} - '@wecom/wecom-openclaw-plugin@2026.4.8': - resolution: {integrity: sha512-bGbS8493sHT34FAYaugep2OLjb4dvYfLXMSfZguK/4s8i5PM//2iy4XPUsniacl8LNSUxiF/FuQGM/LJxNwrFg==} + '@wecom/wecom-openclaw-plugin@2026.4.2201': + resolution: {integrity: sha512-bbRGmijtMyflxLLkijeESnKu3pIOjetT9UPChdNfweanCo9l1I5fBfVerV016/FyY7k71RfUyvPiUAsChaGXvw==} '@whiskeysockets/baileys@7.0.0-rc.9': resolution: {integrity: sha512-YFm5gKXfDP9byCXCW3OPHKXLzrAKzolzgVUlRosHHgwbnf2YOO3XknkMm6J7+F0ns8OA0uuSBhgkRHTDtqkacw==} @@ -3005,9 +2846,6 @@ packages: resolution: {integrity: sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==} engines: {node: '>=10.0.0'} - abbrev@1.1.1: - resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} - abbrev@3.0.1: resolution: {integrity: sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==} engines: {node: ^18.17.0 || >=20.5.0} @@ -3030,6 +2868,11 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + acpx@0.5.3: + resolution: {integrity: sha512-LNKc9gWlRztWKtQ3jr4g/kzlL9HU/5Wor79mromg/zRV5vE2FOdU+8VtW8ZypIMLzxLx2ATN6A4S1Dr97DM2QQ==} + engines: {node: '>=22.12.0'} + hasBin: true + agent-base@7.1.4: resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} engines: {node: '>= 14'} @@ -3057,9 +2900,6 @@ packages: ajv@8.18.0: resolution: {integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==} - another-json@0.2.0: - resolution: {integrity: sha512-/Ndrl68UQLhnCdsAzEXLMFuOR546o2qbYRqCglaNHbjXrwG1ayTcdwr3zkSGOGtGXDyR5X9nCFfnyG2AFJIsqg==} - ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -3090,10 +2930,6 @@ packages: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} - apache-arrow@18.1.0: - resolution: {integrity: sha512-v/ShMp57iBnBp4lDgV8Jx3d3Q5/Hac25FWmQ98eMahUiHPXcvwIMKJD0hBIgclm/FCG+LwPkAKtkRO1O/W0YGg==} - hasBin: true - app-builder-bin@5.0.0-alpha.12: resolution: {integrity: sha512-j87o0j6LqPL3QRr8yid6c+Tt5gC7xNfYo6uQIQkorAC6MpeayVMZrEDzKmJJ/Hlv7EnOQpaRm53k6ktDYZyB6w==} @@ -3104,14 +2940,6 @@ packages: dmg-builder: 26.8.1 electron-builder-squirrel-windows: 26.8.1 - aproba@2.1.0: - resolution: {integrity: sha512-tLIEcj5GuR2RSTnxNKdkK0dJ/GrC7P38sUkiDmDuHfsHmbagTFAxDVIBltoklXEVIQ/f14IL8IMJ5pn9Hez1Ew==} - - are-we-there-yet@2.0.0: - resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} - engines: {node: '>=10'} - deprecated: This package is no longer supported. - arg@5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} @@ -3138,13 +2966,8 @@ packages: arktype@2.2.0: resolution: {integrity: sha512-t54MZ7ti5BhOEvzEkgKnWvqj+UbDfWig+DHr5I34xatymPusKLS0lQpNJd8M6DzmIto2QGszHfNKoFIT8tMCZQ==} - array-back@3.1.0: - resolution: {integrity: sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==} - engines: {node: '>=6'} - - array-back@6.2.3: - resolution: {integrity: sha512-SGDvmg6QTYiTxCBkYVmThcoa67uLl35pyzRHdpCGBOcqFy6BtwnphoFPk7LhJshD+Yk1Kt35WGWeZPTgwR4Fhw==} - engines: {node: '>=12.17'} + asn1.js@5.4.1: + resolution: {integrity: sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==} assert-plus@1.0.0: resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} @@ -3200,6 +3023,14 @@ packages: axios@1.13.6: resolution: {integrity: sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ==} + b4a@1.8.0: + resolution: {integrity: sha512-qRuSmNSkGQaHwNbM7J78Wwy+ghLEYF1zNrSeMxj4Kgw6y33O3mXcQ6Ie9fRvfU/YnxWkOchPXbaLb73TkIsfdg==} + peerDependencies: + react-native-b4a: '*' + peerDependenciesMeta: + react-native-b4a: + optional: true + bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} @@ -3210,8 +3041,46 @@ packages: resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} engines: {node: 18 || 20 || >=22} - base-x@5.0.1: - resolution: {integrity: sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg==} + bare-events@2.8.2: + resolution: {integrity: sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==} + peerDependencies: + bare-abort-controller: '*' + peerDependenciesMeta: + bare-abort-controller: + optional: true + + bare-fs@4.7.1: + resolution: {integrity: sha512-WDRsyVN52eAx/lBamKD6uyw8H4228h/x0sGGGegOamM2cd7Pag88GfMQalobXI+HaEUxpCkbKQUDOQqt9wawRw==} + engines: {bare: '>=1.16.0'} + peerDependencies: + bare-buffer: '*' + peerDependenciesMeta: + bare-buffer: + optional: true + + bare-os@3.9.0: + resolution: {integrity: sha512-JTjuZyNIDpw+GytMO4a6TK1VXdVKKJr6DRxEHasyuYyShV2deuiHJK/ahGZlebc+SG0/wJCB9XK8gprBGDFi/Q==} + engines: {bare: '>=1.14.0'} + + bare-path@3.0.0: + resolution: {integrity: sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==} + + bare-stream@2.13.0: + resolution: {integrity: sha512-3zAJRZMDFGjdn+RVnNpF9kuELw+0Fl3lpndM4NcEOhb9zwtSo/deETfuIwMSE5BXanA0FrN1qVjffGwAg2Y7EA==} + 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.2: + resolution: {integrity: sha512-/9a2j4ac6ckpmAHvod/ob7x439OAHst/drc2Clnq+reRYd/ovddwcF4LfoxHyNk5AuGBnPg+HqFjmE/Zpq6v0A==} base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} @@ -3224,6 +3093,7 @@ packages: basic-ftp@5.2.0: resolution: {integrity: sha512-VoMINM2rqJwJgfdHq6RiUudKt2BV+FY5ZFezP/ypmwayk68+NzzAQy4XXLlqsGD4MCzq3DrmNFD/uUmBJuGoXw==} engines: {node: '>=10.0.0'} + deprecated: Security vulnerability fixed in 5.2.1, please upgrade bidi-js@1.0.3: resolution: {integrity: sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==} @@ -3244,13 +3114,13 @@ packages: bmp-ts@1.0.9: resolution: {integrity: sha512-cTEHk2jLrPyi+12M3dhpEbnnPOsaZuq7C45ylbbQIiWgDFZq4UVYPEY5mlqjvsj/6gJv9qX5sa+ebDzLXT28Vw==} + bn.js@4.12.3: + resolution: {integrity: sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g==} + body-parser@2.2.2: resolution: {integrity: sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==} engines: {node: '>=18'} - boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - boolean@3.2.0: resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. @@ -3280,9 +3150,6 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true - bs58@6.0.0: - resolution: {integrity: sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw==} - buffer-crc32@0.2.13: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} @@ -3336,6 +3203,10 @@ packages: resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} engines: {node: '>= 6'} + camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + caniuse-lite@1.0.30001781: resolution: {integrity: sha512-RdwNCyMsNBftLjW6w01z8bKEvT6e/5tpPVEgtn22TiLGlstHOVecsX2KHFkD5e/vRnIE4EGzpuIODb3mtswtkw==} @@ -3346,10 +3217,6 @@ packages: resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} engines: {node: '>=18'} - chalk-template@0.4.0: - resolution: {integrity: sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==} - engines: {node: '>=12'} - chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} @@ -3430,6 +3297,9 @@ packages: resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} engines: {node: '>=8'} + cliui@6.0.0: + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + cliui@7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} @@ -3455,10 +3325,6 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - color-support@1.1.3: - resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} - hasBin: true - combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} @@ -3466,14 +3332,6 @@ packages: comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} - command-line-args@5.2.1: - resolution: {integrity: sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==} - engines: {node: '>=4.0.0'} - - command-line-usage@7.0.4: - resolution: {integrity: sha512-85UdvzTNx/+s5CkSgBm/0hzP80RFHAa7PsfeADE5ezZF3uHz3/Tqj9gIKGT9PTtpycc3Ua64T0oVulGfKxzfqg==} - engines: {node: '>=12.20.0'} - commander@14.0.3: resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==} engines: {node: '>=20'} @@ -3505,9 +3363,6 @@ packages: resolution: {integrity: sha512-Uy5YN9KEu0WWDaZAVJ5FAmZoaJt9rdK6kH+utItPyGsCqCgaTKkrmZx3zoE0/3q6S3bcp3Ihkk+ZqPxWxFK5og==} engines: {node: '>=20'} - console-control-strings@1.1.0: - resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} - content-disposition@1.0.1: resolution: {integrity: sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==} engines: {node: '>=18'} @@ -3555,17 +3410,10 @@ packages: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} - css-select@5.2.2: - resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} - css-tree@3.2.1: resolution: {integrity: sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} - css-what@6.2.2: - resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} - engines: {node: '>= 6'} - css.escape@1.5.1: resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} @@ -3574,9 +3422,6 @@ packages: engines: {node: '>=4'} hasBin: true - cssom@0.5.0: - resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} - cssstyle@6.2.0: resolution: {integrity: sha512-Fm5NvhYathRnXNVndkUsCCuR63DCLVVwGOOwQw782coXFi5HhkXdu289l59HlXZBawsyNccXfWRYvLzcDCdDig==} engines: {node: '>=20'} @@ -3616,6 +3461,10 @@ packages: supports-color: optional: true + decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + decimal.js@10.6.0: resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} @@ -3658,9 +3507,6 @@ packages: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} - delegates@1.0.0: - resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} - depd@2.0.0: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} @@ -3685,14 +3531,13 @@ packages: didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} - diff@8.0.3: - resolution: {integrity: sha512-qejHi7bcSD4hQAZE0tNAawRK1ZtafHDmMTMkrrIGgSLl7hTnQHmKCeB45xAcbfTqK2zowkM3j3bHt/4b/ARbYQ==} - engines: {node: '>=0.3.1'} - diff@8.0.4: resolution: {integrity: sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==} engines: {node: '>=0.3.1'} + dijkstrajs@1.0.3: + resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==} + dingbat-to-unicode@1.0.1: resolution: {integrity: sha512-98l0sW87ZT58pU4i61wa2OHwxbiYSbuxsCBozaVnYX2iCnr3bLM3fIes1/ej7h1YdOKuKt/MLs706TVnALA65w==} @@ -3705,6 +3550,9 @@ packages: discord-api-types@0.38.45: resolution: {integrity: sha512-DiI01i00FPv6n+hXcFkFxK8Y/rFRpKs6U6aP32N4T73nTbj37Eua3H/95TBpLktLWB6xnLXhYDGvyLq6zzYY2w==} + discord-api-types@0.38.47: + resolution: {integrity: sha512-XgXQodHQBAE6kfD7kMvVo30863iHX1LHSqNq6MGUTDwIFCCvHva13+rwxyxVXDqudyApMNAd32PGjgVETi5rjA==} + dlv@1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} @@ -3723,19 +3571,6 @@ packages: dom-accessibility-api@0.6.3: resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} - dom-serializer@2.0.0: - resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} - - domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - - domhandler@5.0.3: - resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} - engines: {node: '>= 4'} - - domutils@3.2.2: - resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} - dot-prop@10.1.0: resolution: {integrity: sha512-MVUtAugQMOff5RnBy2d9N31iG0lNwg1qAoAOn7pOK5wf94WIaE3My2p3uwTQuvS2AcqchkcR3bHByjaM0mmi7Q==} engines: {node: '>=20'} @@ -3748,8 +3583,8 @@ packages: resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} engines: {node: '>=12'} - dotenv@17.4.1: - resolution: {integrity: sha512-k8DaKGP6r1G30Lx8V4+pCsLzKr8vLmV2paqEj1Y55GdAgJuIqpRp5FfajGF8KtwMxCz9qJc6wUIJnm053d/WCw==} + dotenv@17.4.2: + resolution: {integrity: sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==} engines: {node: '>=12'} duck@0.1.12: @@ -3827,10 +3662,6 @@ packages: resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} engines: {node: '>=0.12'} - entities@7.0.1: - resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} - engines: {node: '>=0.12'} - env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} @@ -3961,15 +3792,11 @@ packages: 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@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} + events-universal@1.0.1: + resolution: {integrity: sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==} eventsource-parser@3.0.6: resolution: {integrity: sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==} @@ -4011,13 +3838,12 @@ packages: resolution: {integrity: sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==} engines: {'0': node >=0.6.0} - fake-indexeddb@6.2.5: - resolution: {integrity: sha512-CGnyrvbhPlWYMngksqrSSUT1BAVP49dZocrHuK0SvtR0D5TMs5wP0o3j7jexDJW01KSadjBp1M/71o/KR3nD1w==} - engines: {node: '>=18'} - fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + 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'} @@ -4096,9 +3922,9 @@ packages: resolution: {integrity: sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==} engines: {node: '>= 18.0.0'} - find-replace@3.0.0: - resolution: {integrity: sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==} - engines: {node: '>=4.0.0'} + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} @@ -4108,9 +3934,6 @@ packages: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} - flatbuffers@24.12.23: - resolution: {integrity: sha512-dLVCAISd5mhls514keQzmEG6QHmUUsNuWsb4tFafIUwvvgDjXhtfAYSKOzt5SWOy+qByV5pbsDZ+Vb7HUOBEdA==} - flatted@3.4.2: resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==} @@ -4204,23 +4027,10 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - gauge@3.0.2: - resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} - engines: {node: '>=10'} - deprecated: This package is no longer supported. - - gaxios@6.7.1: - resolution: {integrity: sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==} - engines: {node: '>=14'} - gaxios@7.1.4: resolution: {integrity: sha512-bTIgTsM2bWn3XklZISBTQX7ZSddGW+IO3bMdGaemHZ3tbqExMENHLx6kKZ/KlejgrMtj8q7wBItt51yegqalrA==} engines: {node: '>=18'} - gcp-metadata@6.1.1: - resolution: {integrity: sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A==} - engines: {node: '>=14'} - gcp-metadata@8.1.2: resolution: {integrity: sha512-zV/5HKTfCeKWnxG0Dmrw51hEWFGfcF2xiXqcA3+J90WDuP0SvoiSO5ORvcBsifmx/FoIjgQN3oNOGaQ5PhLFkg==} engines: {node: '>=18'} @@ -4253,6 +4063,9 @@ packages: resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} engines: {node: '>=8'} + get-tsconfig@4.14.0: + resolution: {integrity: sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==} + get-uri@6.0.5: resolution: {integrity: sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==} engines: {node: '>= 14'} @@ -4301,14 +4114,6 @@ packages: resolution: {integrity: sha512-e27Z6EThmVNNvtYASwQxose/G57rkRuaRbQyxM2bvYLLX/GqWZ5chWq2EBoUchJbCc57eC9ArzO5wMsEmWftCw==} engines: {node: '>=18'} - google-auth-library@9.15.1: - resolution: {integrity: sha512-Jb6Z0+nvECVz+2lzSMt9u98UsoakXxA2HGHMCxh+so3n90XgYWkq5dur19JAJV7ONiJY22yBTyJB1TSkvPq9Ng==} - engines: {node: '>=14'} - - google-logging-utils@0.0.2: - resolution: {integrity: sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ==} - engines: {node: '>=14'} - google-logging-utils@1.1.3: resolution: {integrity: sha512-eAmLkjDjAFCVXg7A1unxHsLf961m6y17QFqXqAXGj/gVkKFrEICfStRfwUlGNfeCEjNRa32JEWOUTlYXPyyKvA==} engines: {node: '>=14'} @@ -4328,10 +4133,6 @@ packages: resolution: {integrity: sha512-1AdCge+AkjSdp2FwfICSFnVbl8Mq3KVHJDy+DgTI9+D6keJ0zWALPRKas5jv/8psiCzL4N2cEOcGW7O45Kn39g==} engines: {node: ^12.20.0 || >=14.13.1} - gtoken@7.1.0: - resolution: {integrity: sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==} - engines: {node: '>=14.0.0'} - has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} @@ -4347,9 +4148,6 @@ packages: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} - has-unicode@2.0.1: - resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} - hashery@1.5.1: resolution: {integrity: sha512-iZyKG96/JwPz1N55vj2Ie2vXbhu440zfUfJvSwEqEbeLluk7NnapfGqa7LH0mOsnDxTF85Mx8/dyR6HfqcbmbQ==} engines: {node: '>=20'} @@ -4376,9 +4174,6 @@ packages: hast-util-parse-selector@4.0.0: resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} - hast-util-to-html@9.0.5: - resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} - hast-util-to-jsx-runtime@2.3.6: resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==} @@ -4422,21 +4217,12 @@ packages: resolution: {integrity: sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - html-escaper@3.0.3: - resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==} - html-parse-stringify@3.0.1: resolution: {integrity: sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==} html-url-attributes@3.0.1: resolution: {integrity: sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==} - html-void-elements@3.0.0: - resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} - - htmlparser2@10.1.0: - resolution: {integrity: sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==} - http-cache-semantics@4.2.0: resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} @@ -4456,10 +4242,18 @@ packages: resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} engines: {node: '>=10.19.0'} + http_ece@1.2.0: + resolution: {integrity: sha512-JrF8SSLVmcvc5NducxgyOrKXe3EsyHMgBFgSaIUGmArKe+rwr0uphRkRXvwiom3I+fpIfoItveHrfudL8/rxuA==} + engines: {node: '>=16'} + https-proxy-agent@7.0.6: resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} + https-proxy-agent@9.0.0: + resolution: {integrity: sha512-/MVmHp58WkOypgFhCLk4fzpPcFQvTJ/e6LBI7irpIO2HfxUbpmYoHF+KzipzJpxxzJu7aJNWQ0xojJ/dzV2G5g==} + engines: {node: '>= 20'} + i18next@25.10.9: resolution: {integrity: sha512-hQY9/bFoQKGlSKMlaCuLR8w1h5JjieqrsnZvEmj1Ja6Ec7fbyc4cTrCsY9mb9Sd8YQ/swsrKz1S9M8AcvVI70w==} peerDependencies: @@ -4550,9 +4344,6 @@ packages: is-decimal@2.0.1: resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} - is-electron@2.2.2: - resolution: {integrity: sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg==} - is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -4594,10 +4385,6 @@ packages: is-promise@4.0.0: resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - is-unicode-supported@0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} @@ -4670,10 +4457,6 @@ packages: json-bigint@1.0.0: resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==} - json-bignum@0.0.3: - resolution: {integrity: sha512-2WHyXj3OfHSgNyuzDbSxI1w2jgw5gkWSWhS7Qg4bWXx1nLk3jnbwfUeS0PSba3IzpTUWdHxBieELUzXRjQB2zg==} - engines: {node: '>=0.8'} - json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} @@ -4707,10 +4490,6 @@ packages: jsonfile@6.2.0: resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} - jsonwebtoken@9.0.3: - resolution: {integrity: sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==} - engines: {node: '>=12', npm: '>=6'} - jszip@3.10.1: resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} @@ -4720,10 +4499,6 @@ packages: jws@4.0.1: resolution: {integrity: sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==} - jwt-decode@4.0.0: - resolution: {integrity: sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==} - engines: {node: '>=18'} - katex@0.16.45: resolution: {integrity: sha512-pQpZbdBu7wCTmQUh7ufPmLr0pFoObnGUoL/yhtwJDgmmQpbkg/0HSVti25Fu4rmd1oCR6NGWe9vqTWuWv3GcNA==} hasBin: true @@ -4754,59 +4529,30 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - linkedom@0.18.12: - resolution: {integrity: sha512-jalJsOwIKuQJSeTvsgzPe9iJzyfVaEJiEXl+25EkKevsULHvMJzpNqwvj1jOESWdmgKDiXObyjOYwlUqG7wo1Q==} - engines: {node: '>=16'} - peerDependencies: - canvas: '>= 2' - peerDependenciesMeta: - canvas: - optional: true - linkify-it@5.0.0: resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} - lodash.camelcase@4.3.0: - resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} - lodash.escaperegexp@4.1.2: resolution: {integrity: sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==} lodash.identity@3.0.0: resolution: {integrity: sha512-AupTIzdLQxJS5wIYUQlgGyk2XRTfGXA+MCghDHqZk0pzUNYvd3EESS6dkChNauNYVIutcb0dfHw1ri9Q1yPV8Q==} - lodash.includes@4.3.0: - resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} - - lodash.isboolean@3.0.3: - resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} - lodash.isequal@4.5.0: resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} deprecated: This package is deprecated. Use require('node:util').isDeepStrictEqual instead. - lodash.isinteger@4.0.4: - resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} - - lodash.isnumber@3.0.3: - resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} - - lodash.isplainobject@4.0.6: - resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} - - lodash.isstring@4.0.1: - resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} - lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - lodash.once@4.1.1: - resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} - lodash.pickby@4.6.0: resolution: {integrity: sha512-AZV+GsS/6ckvPOVQPXSiFFacKvKB4kOQu6ynt9wz0F3LO4R9Ij4K1ddYsIytDpSgLz88JHd9P+oaLeej5/Sl7Q==} @@ -4821,10 +4567,6 @@ packages: resolution: {integrity: sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==} engines: {node: '>=18'} - loglevel@1.9.2: - resolution: {integrity: sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==} - engines: {node: '>= 0.6.0'} - long@4.0.0: resolution: {integrity: sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==} @@ -4859,9 +4601,6 @@ packages: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} - lru_map@0.4.1: - resolution: {integrity: sha512-I+lBvqMMFfqaV8CJCISjI3wbjmwVu/VyOoU7+qtu9d7ioW5klMgsTTiUOUp+DJvfTTzKXoPbyC6YfgkNcyPSOg==} - lucide-react@0.563.0: resolution: {integrity: sha512-8dXPB2GI4dI8jV4MgUDGBeLdGk8ekfqVZ0BdLcrRzocGgG75ltNEmWS+gE7uokKF/0oSUuczNDT+g9hFJ23FkA==} peerDependencies: @@ -4874,10 +4613,6 @@ packages: magic-string@0.30.21: resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} - make-dir@3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} - make-fetch-happen@14.0.3: resolution: {integrity: sha512-QMjGbFTP0blj97EeidG5hk/QhKQ3T4ICckQGLgz38QF7Vgbk6e6FTARN8KhKxyBbWn8R0HU+bnw8aSoFPD4qtQ==} engines: {node: ^18.17.0 || >=20.5.0} @@ -4907,16 +4642,6 @@ packages: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} - matrix-events-sdk@0.0.1: - resolution: {integrity: sha512-1QEOsXO+bhyCroIe2/A5OwaxHvBm7EsSQ46DEDn8RBIfQwN5HWBpFvyWWR4QY0KHPPnnJdI99wgRiAl7Ad5qaA==} - - matrix-js-sdk@41.3.0: - resolution: {integrity: sha512-QTNHpBQEKPH3WS4O92CBfFj6GxeyijT8osI/QxNvOrM3rE6CySXRtRRKnzR0ntFSdrk1CxrDGV6h2wmk7B3peQ==} - engines: {node: '>=22.0.0'} - - matrix-widget-api@1.17.0: - resolution: {integrity: sha512-5FHoo3iEP3Bdlv5jsYPWOqj+pGdFQNLWnJLiB0V7Ygne7bb+Gsj3ibyFyHWC6BVw+Z+tSW4ljHpO17I9TwStwQ==} - mdast-util-find-and-replace@3.0.2: resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} @@ -5125,6 +4850,9 @@ packages: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} + minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + minimatch@10.2.4: resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} engines: {node: 18 || 20 || >=22} @@ -5234,10 +4962,6 @@ packages: node-addon-api@1.7.2: resolution: {integrity: sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==} - node-addon-api@8.7.0: - resolution: {integrity: sha512-9MdFxmkKaOYVTV+XVRG8ArDwwQ77XIgIPyKASB1k3JPq3M8fGQQQE3YpMOrKm6g//Ktx8ivZr8xo1Qmtqub+GA==} - engines: {node: ^18 || ^20 || >= 21} - node-api-version@0.2.1: resolution: {integrity: sha512-2xP/IGGMmmSQpI1+O/k72jF/ykvZ89JeuKX3TLJAYPDVLUalrshrLHkeVcCCZqG/eEa635cr8IBYzgnDvM2O8Q==} @@ -5246,15 +4970,6 @@ packages: engines: {node: '>=10.5.0'} deprecated: Use your platform's native DOMException instead - node-downloader-helper@2.1.11: - resolution: {integrity: sha512-882fH2C9AWdiPCwz/2beq5t8FGMZK9Dx8TJUOIxzMCbvG7XUKM5BuJwN5f0NKo4SCQK6jR4p2TPm54mYGdGchQ==} - engines: {node: '>=14.18'} - hasBin: true - - node-edge-tts@1.2.10: - resolution: {integrity: sha512-bV2i4XU54D45+US0Zm1HcJRkifuB3W438dWyuJEHLQdKxnuqlI1kim2MOvR6Q3XUQZvfF9PoDyR1Rt7aeXhPdQ==} - hasBin: true - node-fetch@2.7.0: resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} engines: {node: 4.x || >=6.0.0} @@ -5276,17 +4991,9 @@ packages: node-machine-id@1.1.12: resolution: {integrity: sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==} - node-readable-to-web-readable-stream@0.4.2: - resolution: {integrity: sha512-/cMZNI34v//jUTrI+UIo4ieHAB5EZRY/+7OmXZgBxaWBMcW2tGdceIw06RFxWxrKZ5Jp3sI2i5TsRo+CBhtVLQ==} - node-releases@2.0.36: resolution: {integrity: sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==} - nopt@5.0.0: - resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} - engines: {node: '>=6'} - hasBin: true - nopt@8.1.0: resolution: {integrity: sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==} engines: {node: ^18.17.0 || >=20.5.0} @@ -5300,24 +5007,6 @@ packages: resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} engines: {node: '>=10'} - nostr-tools@2.23.3: - resolution: {integrity: sha512-AALyt9k8xPdF4UV2mlLJ2mgCn4kpTB0DZ8t2r6wjdUh6anfx2cTVBsHUlo9U0EY/cKC5wcNyiMAmRJV5OVEalA==} - peerDependencies: - typescript: '>=5.0.0' - peerDependenciesMeta: - typescript: - optional: true - - nostr-wasm@0.1.0: - resolution: {integrity: sha512-78BTryCLcLYv96ONU8Ws3Q1JzjlAt+43pWQhIl86xZmWeegYCNLPml7yQ+gG3vR6V5h4XGj+TxO+SS5dsThQIA==} - - npmlog@5.0.1: - resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} - deprecated: This package is no longer supported. - - nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -5337,10 +5026,6 @@ packages: obug@2.1.1: resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==} - oidc-client-ts@3.5.0: - resolution: {integrity: sha512-l2q8l9CTCTOlbX+AnK4p3M+4CEpKpyQhle6blQkdFhm0IsBqsxm15bYaSa11G7pWdsYr6epdsRZxJpCyCRbT8A==} - engines: {node: '>=18'} - omggif@1.0.10: resolution: {integrity: sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==} @@ -5363,12 +5048,6 @@ packages: resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} engines: {node: '>=18'} - oniguruma-parser@0.12.1: - resolution: {integrity: sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==} - - oniguruma-to-es@4.3.5: - resolution: {integrity: sha512-Zjygswjpsewa0NLTsiizVuMQZbp0MDyM6lIt66OxsF21npUDlzpHi1Mgb/qhQdkb+dWFTzJmFbEWdvZgRho8eQ==} - openai@6.26.0: resolution: {integrity: sha512-zd23dbWTjiJ6sSAX6s0HrCZi41JwTA1bQVs0wLQPZ2/5o2gxOJA5wh7yOAUgwYybfhDXyhwlpeQf7Mlgx8EOCA==} hasBin: true @@ -5393,16 +5072,10 @@ packages: zod: optional: true - openclaw@2026.4.15: - resolution: {integrity: sha512-vHH11WXuuHkTlA2Nfu+r7WzWo4uccraCgYjhMpzE+PjXUT4p+B3NMq0F24NbpBy+eNw5YjPPZyxxsY31qyFACw==} + openclaw@2026.4.26: + resolution: {integrity: sha512-KBKI7gu9d/6NxBfqnojTFcHNJvrOyyYGJ6oczaBKF7zUHVKdm78zZNQOBmwiaHQMrvhjNRo0ry9xXtaAJwhV3A==} engines: {node: '>=22.14.0'} hasBin: true - peerDependencies: - '@napi-rs/canvas': ^0.1.89 - node-llama-cpp: 3.18.1 - peerDependenciesMeta: - node-llama-cpp: - optional: true option@0.2.4: resolution: {integrity: sha512-pkEqbDyl8ou5cpq+VsnQbe/WlEy5qS7xPzMS1U55OCG9KPvwFD46zDbxQIj3egJSFc3D+XhYOPUzz49zQAVy7A==} @@ -5430,14 +5103,18 @@ packages: resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} engines: {node: '>=8'} - p-finally@1.0.0: - resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} - engines: {node: '>=4'} + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + p-locate@5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} @@ -5446,10 +5123,6 @@ packages: resolution: {integrity: sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==} engines: {node: '>=18'} - p-queue@6.6.2: - resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} - engines: {node: '>=8'} - p-queue@9.1.0: resolution: {integrity: sha512-O/ZPaXuQV29uSLbxWBGGZO1mCQXV2BLIwUr59JUU9SoH76mnYvtms7aafH/isNSNGwuEfP6W/4xD0/TJXxrizw==} engines: {node: '>=20'} @@ -5462,14 +5135,14 @@ packages: resolution: {integrity: sha512-J5ApzjyRkkf601HpEeykoiCvzHQjWxPAHhyjFcEUP2SWq0+35NKh8TLhpLw+Dkq5TZBFvUM6UigdE9hIVYTl5w==} engines: {node: '>=20'} - p-timeout@3.2.0: - resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} - engines: {node: '>=8'} - p-timeout@7.0.1: resolution: {integrity: sha512-AxTM2wDGORHGEkPCt8yqxOTMgpfbEHqF51f/5fJCmwFC3C/zNcGT63SymH2ttOAaiIws2zVg4+izQCjrakcwHg==} engines: {node: '>=20'} + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + pac-proxy-agent@7.2.0: resolution: {integrity: sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==} engines: {node: '>= 14'} @@ -5570,10 +5243,6 @@ packages: resolution: {integrity: sha512-DlOzet0HO7OEnmUmB6wWGJrrdvbyJKftI1bhMitK7O2N8W2gc757yyYBbINy9IDafXAV9wmKr9t7xsTaNKRG5Q==} engines: {node: '>=20.16.0 || >=22.3.0'} - pdfjs-dist@5.6.205: - resolution: {integrity: sha512-tlUj+2IDa7G1SbvBNN74UHRLJybZDWYom+k6p5KIZl7huBvsA4APi6mKL+zCxd3tLjN5hOOEE9Tv7VdzO88pfg==} - engines: {node: '>=20.19.0 || >=22.13.0 || >=24'} - pe-library@0.4.1: resolution: {integrity: sha512-eRWB5LBz7PpDu4PUlwT0PhnQfTQJlDDdPa35urV4Osrm0t0AqQFGn+UIkU3klZvwJ8KPO3VbBFsXquA6p6kqZw==} engines: {node: '>=12', npm: '>=6'} @@ -5641,6 +5310,10 @@ packages: resolution: {integrity: sha512-GDEQJr8OG4e6JMp7mABtXFSEpgJa1CCpbQiAR+EjhkHJHnUL9zPPtbOrjsMD8gUbikgv3j7x404b0YJsV3aVFA==} hasBin: true + pngjs@5.0.0: + resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==} + engines: {node: '>=10.13.0'} + pngjs@6.0.0: resolution: {integrity: sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg==} engines: {node: '>=12.13.0'} @@ -5805,6 +5478,11 @@ packages: resolution: {integrity: sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==} hasBin: true + qrcode@1.5.4: + resolution: {integrity: sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==} + engines: {node: '>=10.13.0'} + hasBin: true + qs@6.15.0: resolution: {integrity: sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==} engines: {node: '>=0.6'} @@ -5945,18 +5623,6 @@ packages: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} engines: {node: '>=8'} - reflect-metadata@0.2.2: - resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==} - - regex-recursion@6.0.2: - resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} - - regex-utilities@2.3.0: - resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} - - regex@6.1.0: - resolution: {integrity: sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==} - rehype-katex@7.0.1: resolution: {integrity: sha512-OiM2wrZ/wuhKkigASodFoo8wimG3H12LWQaH8qSPVJn9apWKFSH3YOCtbKpBorTVw/eI7cuT21XBbvwEswbIOA==} @@ -5983,6 +5649,9 @@ packages: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} + require-main-filename@2.0.0: + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + resedit@1.7.2: resolution: {integrity: sha512-vHjcY2MlAITJhC0eRD/Vv8Vlgmu9Sd3LX9zZvtGzU5ZImdTN3+d6e/4mnTyV8vEbyf1sgNIrWxhWlrys52OkEA==} engines: {node: '>=12', npm: '>=6'} @@ -5990,6 +5659,9 @@ packages: resolve-alpn@1.2.1: resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + resolve@1.22.11: resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} engines: {node: '>= 0.4'} @@ -6023,11 +5695,6 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - roarr@2.15.4: resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==} engines: {node: '>=8.0'} @@ -6071,10 +5738,6 @@ packages: scheduler@0.27.0: resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} - sdp-transform@3.0.0: - resolution: {integrity: sha512-gfYVRGxjHkGF2NPeUWHw5u6T/KGFtS5/drPms73gaSuMaVHKCY3lpLnGDfswVQO0kddeePoti09AwhYP4zA8dQ==} - hasBin: true - semver-compare@1.0.0: resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} @@ -6127,9 +5790,6 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shiki@3.23.0: - resolution: {integrity: sha512-55Dj73uq9ZXL5zyeRPzHQsK7Nbyt6Y10k5s7OjuFZGMhpp4r/rsLBH0o/0fstIzX1Lep9VxefWljK/SKCzygIA==} - side-channel-list@1.0.0: resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} engines: {node: '>= 0.4'} @@ -6174,6 +5834,11 @@ packages: sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + skillflag@0.1.4: + resolution: {integrity: sha512-egFg+XCF5sloOWdtzxZivTX7n4UDj5pxQoY33wbT8h+YSDjMQJ76MZUg2rXQIBXmIDtlZhLgirS1g/3R5/qaHA==} + engines: {node: '>=18'} + hasBin: true + slice-ansi@3.0.0: resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} engines: {node: '>=8'} @@ -6280,6 +5945,9 @@ packages: resolution: {integrity: sha512-reExS1kSGoElkextOcPkel4NE99S0BWxjUHQeDFnR8S993JxpPX7KU4MNmO19NXhlJp+8dmdCbKQVNgLJh2teA==} engines: {node: '>=18'} + streamx@2.25.0: + resolution: {integrity: sha512-0nQuG6jf1w+wddNEEXCF4nTg3LtufWINB5eFEN+5TNZW7KWJp6x87+JFL43vaAUPyCfH1wID+mNVyW6OHtFamg==} + string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -6352,10 +6020,6 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - table-layout@4.1.1: - resolution: {integrity: sha512-iK5/YhZxq5GO5z8wb0bY1317uDF3Zjpha0QFFLA8/trAoiLbQD0HUbMesEaxyzUgDxi2QlcbM8IvqOlEjgoXBA==} - engines: {node: '>=12.17'} - tagged-tag@1.0.0: resolution: {integrity: sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==} engines: {node: '>=20'} @@ -6373,6 +6037,9 @@ packages: engines: {node: '>=14.0.0'} hasBin: true + tar-stream@3.1.8: + resolution: {integrity: sha512-U6QpVRyCGHva435KoNWy9PRoi2IFYCgtEhq9nmrPPpbRacPs9IH4aJ3gbrFC8dPcXvdSZ4XXfXT5Fshbp2MtlQ==} + tar@6.2.1: resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} @@ -6381,6 +6048,9 @@ packages: resolution: {integrity: sha512-tOG/7GyXpFevhXVh8jOPJrmtRpOTsYqUIkVdVooZYJS/z8WhfQUX8RJILmeuJNinGAMSu1veBr4asSHFt5/hng==} engines: {node: '>=18'} + teex@1.0.1: + resolution: {integrity: sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==} + temp-file@3.4.0: resolution: {integrity: sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==} @@ -6388,6 +6058,9 @@ packages: resolution: {integrity: sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==} engines: {node: '>=6.0.0'} + 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'} @@ -6487,9 +6160,10 @@ packages: resolution: {integrity: sha512-XuELoRpMR+sq8fuWwX7P0bcj+PRNiicOKDEb3fGNURhxWVyykCi9BNq7c4uVz7h7P0sj8qgBsr5SWS6yBClq3g==} engines: {node: '>=16'} - tsscmp@1.0.6: - resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} - engines: {node: '>=0.6.x'} + tsx@4.21.0: + resolution: {integrity: sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==} + engines: {node: '>=18.0.0'} + hasBin: true type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} @@ -6507,25 +6181,17 @@ packages: resolution: {integrity: sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==} engines: {node: '>= 0.6'} + typebox@1.1.33: + resolution: {integrity: sha512-+/MWwlQ1q2GSVwoxi/+u5JsHkgLQKcCN2Nsjree9c+K7GJu40qbaHrFETmfV1i9Fs1TcOVfynW+jJvIWcXtvjw==} + typescript@5.9.3: resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} engines: {node: '>=14.17'} hasBin: true - typical@4.0.0: - resolution: {integrity: sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==} - engines: {node: '>=8'} - - typical@7.3.0: - resolution: {integrity: sha512-ya4mg/30vm+DOWfBg4YK3j2WD6TWtRkCbasOJr40CseYENzCUby/7rIvXA99JGsQHeNxLbnXdyLLxKSv3tauFw==} - engines: {node: '>=12.17'} - uc.micro@2.1.0: resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} - uhyphen@0.2.0: - resolution: {integrity: sha512-qz3o9CHXmJJPGBdqzab7qAYuW8kQGKNEuoHFYrBwV6hWIMcpAmxDLXojcHfFr9US1Pe6zUswEIJIbLI610fuqA==} - uint8array-extras@1.5.0: resolution: {integrity: sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A==} engines: {node: '>=18'} @@ -6533,9 +6199,6 @@ packages: underscore@1.13.8: resolution: {integrity: sha512-DXtD3ZtEQzc7M8m4cXotyHR+FAS18C64asBYY5vqZexfYryNNnDc02W4hKg3rdQuqOYas1jkseX0+nZXjTXnvQ==} - undici-types@6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - undici-types@7.16.0: resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} @@ -6549,13 +6212,10 @@ packages: resolution: {integrity: sha512-Xi4agocCbRzt0yYMZGMA6ApD7gvtUFaxm4ZmeacWI4cZxaF6C+8I8QfofC20NAePiB/IcvZmzkJ7XPa471AEtA==} engines: {node: '>=20.18.1'} - undici@8.0.2: - resolution: {integrity: sha512-B9MeU5wuFhkFAuNeA19K2GDFcQXZxq33fL0nRy2Aq30wdufZbyyvxW3/ChaeipXVfy/wUweZyzovQGk39+9k2w==} + undici@8.1.0: + resolution: {integrity: sha512-E9MkTS4xXLnRPYqxH2e6Hr2/49e7WFDKczKcCaFH4VaZs2iNvHMqeIkyUAD9vM8kujy9TjVrRlQ5KkdEJxB2pw==} engines: {node: '>=22.19.0'} - unhomoglyph@1.0.6: - resolution: {integrity: sha512-7uvcWI3hWshSADBu4JpnyYbTVc7YlhF5GDW/oPD5AxIxl34k4wXR3WDkPnzLxkN32LiTCTKMQLtKVZiwki3zGg==} - unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} @@ -6648,12 +6308,8 @@ packages: util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - uuid@13.0.0: - resolution: {integrity: sha512-XQegIaBTVUjSHliKqcnFqYypAd4S+WCYt5NIeRs6w/UAry7z8Y9j5ZwRRL4kzq9U3sD6v+85er9FvkEaBpji2w==} - hasBin: true - - uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + uuid@14.0.0: + resolution: {integrity: sha512-Qo+uWgilfSmAhXCMav1uYFynlQO7fMFiMVZsQqZRMIXp0O7rR7qjkj+cPvBHLgBqi960QCoo/PH2/6ZtVqKvrg==} hasBin: true vary@1.1.2: @@ -6773,6 +6429,11 @@ packages: web-namespaces@2.0.1: resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + web-push@3.6.7: + resolution: {integrity: sha512-OpiIUe8cuGjrj3mMBFWY+e4MMIkW3SVT+7vEIjvD9kejGUypv8GPDf84JdPWskK8zMRIJ6xYGm+Kxr8YkPyA0A==} + engines: {node: '>= 16'} + hasBin: true + web-streams-polyfill@3.3.3: resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} engines: {node: '>= 8'} @@ -6798,6 +6459,9 @@ packages: when-exit@2.1.5: resolution: {integrity: sha512-VGkKJ564kzt6Ms1dbgPP/yuIoQCrsFAnRbptpC5wOEsDaNsbCB2bnfnaA8i/vRs5tjUSEOtIuvl9/MyVsvQZCg==} + which-module@2.0.1: + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -6813,9 +6477,6 @@ packages: engines: {node: '>=8'} hasBin: true - wide-align@1.1.5: - resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} - win-guid@0.2.1: resolution: {integrity: sha512-gEIQU4mkgl2OPeoNrWflcJFJ3Ae2BPd4eCsHHA/XikslkIVms/nHhvnvzIZV7VLmBvtFlDOzLt9rrZT+n6D67A==} @@ -6823,9 +6484,9 @@ packages: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} - wordwrapjs@5.1.1: - resolution: {integrity: sha512-0yweIbkINJodk27gX9LBGMzyQdBDan3s/dEAiwBOj+Mf0PPyWL6/rikalkv8EeD0E8jm4o5RXEOrFTP3NXbhJg==} - engines: {node: '>=12.17'} + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} @@ -6876,6 +6537,9 @@ packages: xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + y18n@4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -6895,6 +6559,10 @@ packages: engines: {node: '>= 14.6'} hasBin: true + yargs-parser@18.1.3: + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} + yargs-parser@20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} engines: {node: '>=10'} @@ -6903,6 +6571,10 @@ packages: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} + yargs@15.4.1: + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} + yargs@16.2.0: resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} engines: {node: '>=10'} @@ -6973,33 +6645,22 @@ snapshots: '@adobe/css-tools@4.4.4': {} - '@agentclientprotocol/sdk@0.18.2(zod@4.3.6)': + '@agentclientprotocol/sdk@0.17.1(zod@4.3.6)': + dependencies: + zod: 4.3.6 + + '@agentclientprotocol/sdk@0.20.0(zod@4.3.6)': dependencies: zod: 4.3.6 '@alloc/quick-lru@5.2.0': {} - '@anthropic-ai/sdk@0.73.0(zod@4.3.6)': + '@anthropic-ai/sdk@0.90.0(zod@4.3.6)': dependencies: json-schema-to-ts: 3.1.1 optionalDependencies: zod: 4.3.6 - '@anthropic-ai/sdk@0.80.0(zod@4.3.6)': - dependencies: - json-schema-to-ts: 3.1.1 - optionalDependencies: - zod: 4.3.6 - - '@anthropic-ai/vertex-sdk@0.15.0(encoding@0.1.13)(zod@4.3.6)': - dependencies: - '@anthropic-ai/sdk': 0.80.0(zod@4.3.6) - google-auth-library: 9.15.1(encoding@0.1.13) - transitivePeerDependencies: - - encoding - - supports-color - - zod - '@ark/schema@0.56.0': dependencies: '@ark/util': 0.56.0 @@ -7027,7 +6688,7 @@ snapshots: '@aws-crypto/crc32@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.973.7 + '@aws-sdk/types': 3.973.8 tslib: 2.8.1 '@aws-crypto/sha256-browser@5.2.0': @@ -7035,7 +6696,7 @@ snapshots: '@aws-crypto/sha256-js': 5.2.0 '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.973.7 + '@aws-sdk/types': 3.973.8 '@aws-sdk/util-locate-window': 3.965.5 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 @@ -7043,7 +6704,7 @@ snapshots: '@aws-crypto/sha256-js@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.973.7 + '@aws-sdk/types': 3.973.8 tslib: 2.8.1 '@aws-crypto/supports-web-crypto@5.2.0': @@ -7052,502 +6713,384 @@ snapshots: '@aws-crypto/util@5.2.0': dependencies: - '@aws-sdk/types': 3.973.7 + '@aws-sdk/types': 3.973.8 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 - '@aws-sdk/client-bedrock-runtime@3.1028.0': + '@aws-sdk/client-bedrock-runtime@3.1035.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.973.27 - '@aws-sdk/credential-provider-node': 3.972.30 - '@aws-sdk/eventstream-handler-node': 3.972.13 - '@aws-sdk/middleware-eventstream': 3.972.9 - '@aws-sdk/middleware-host-header': 3.972.9 - '@aws-sdk/middleware-logger': 3.972.9 - '@aws-sdk/middleware-recursion-detection': 3.972.10 - '@aws-sdk/middleware-user-agent': 3.972.29 - '@aws-sdk/middleware-websocket': 3.972.15 - '@aws-sdk/region-config-resolver': 3.972.11 - '@aws-sdk/token-providers': 3.1028.0 - '@aws-sdk/types': 3.973.7 - '@aws-sdk/util-endpoints': 3.996.6 - '@aws-sdk/util-user-agent-browser': 3.972.9 - '@aws-sdk/util-user-agent-node': 3.973.15 - '@smithy/config-resolver': 4.4.14 - '@smithy/core': 3.23.14 - '@smithy/eventstream-serde-browser': 4.2.13 - '@smithy/eventstream-serde-config-resolver': 4.3.13 - '@smithy/eventstream-serde-node': 4.2.13 - '@smithy/fetch-http-handler': 5.3.16 - '@smithy/hash-node': 4.2.13 - '@smithy/invalid-dependency': 4.2.13 - '@smithy/middleware-content-length': 4.2.13 - '@smithy/middleware-endpoint': 4.4.29 - '@smithy/middleware-retry': 4.5.0 - '@smithy/middleware-serde': 4.2.17 - '@smithy/middleware-stack': 4.2.13 - '@smithy/node-config-provider': 4.3.13 - '@smithy/node-http-handler': 4.5.2 - '@smithy/protocol-http': 5.3.13 - '@smithy/smithy-client': 4.12.9 - '@smithy/types': 4.14.0 - '@smithy/url-parser': 4.2.13 + '@aws-sdk/core': 3.974.4 + '@aws-sdk/credential-provider-node': 3.972.35 + '@aws-sdk/eventstream-handler-node': 3.972.14 + '@aws-sdk/middleware-eventstream': 3.972.10 + '@aws-sdk/middleware-host-header': 3.972.10 + '@aws-sdk/middleware-logger': 3.972.10 + '@aws-sdk/middleware-recursion-detection': 3.972.11 + '@aws-sdk/middleware-user-agent': 3.972.34 + '@aws-sdk/middleware-websocket': 3.972.16 + '@aws-sdk/region-config-resolver': 3.972.13 + '@aws-sdk/token-providers': 3.1035.0 + '@aws-sdk/types': 3.973.8 + '@aws-sdk/util-endpoints': 3.996.8 + '@aws-sdk/util-user-agent-browser': 3.972.10 + '@aws-sdk/util-user-agent-node': 3.973.20 + '@smithy/config-resolver': 4.4.17 + '@smithy/core': 3.23.16 + '@smithy/eventstream-serde-browser': 4.2.14 + '@smithy/eventstream-serde-config-resolver': 4.3.14 + '@smithy/eventstream-serde-node': 4.2.14 + '@smithy/fetch-http-handler': 5.3.17 + '@smithy/hash-node': 4.2.14 + '@smithy/invalid-dependency': 4.2.14 + '@smithy/middleware-content-length': 4.2.14 + '@smithy/middleware-endpoint': 4.4.31 + '@smithy/middleware-retry': 4.5.4 + '@smithy/middleware-serde': 4.2.19 + '@smithy/middleware-stack': 4.2.14 + '@smithy/node-config-provider': 4.3.14 + '@smithy/node-http-handler': 4.6.0 + '@smithy/protocol-http': 5.3.14 + '@smithy/smithy-client': 4.12.12 + '@smithy/types': 4.14.1 + '@smithy/url-parser': 4.2.14 '@smithy/util-base64': 4.3.2 '@smithy/util-body-length-browser': 4.2.2 '@smithy/util-body-length-node': 4.2.3 - '@smithy/util-defaults-mode-browser': 4.3.45 - '@smithy/util-defaults-mode-node': 4.2.49 - '@smithy/util-endpoints': 3.3.4 - '@smithy/util-middleware': 4.2.13 - '@smithy/util-retry': 4.3.0 - '@smithy/util-stream': 4.5.22 + '@smithy/util-defaults-mode-browser': 4.3.48 + '@smithy/util-defaults-mode-node': 4.2.53 + '@smithy/util-endpoints': 3.4.2 + '@smithy/util-middleware': 4.2.14 + '@smithy/util-retry': 4.3.3 + '@smithy/util-stream': 4.5.24 '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-bedrock@3.1028.0': + '@aws-sdk/core@3.974.4': dependencies: - '@aws-crypto/sha256-browser': 5.2.0 - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.973.27 - '@aws-sdk/credential-provider-node': 3.972.30 - '@aws-sdk/middleware-host-header': 3.972.9 - '@aws-sdk/middleware-logger': 3.972.9 - '@aws-sdk/middleware-recursion-detection': 3.972.10 - '@aws-sdk/middleware-user-agent': 3.972.29 - '@aws-sdk/region-config-resolver': 3.972.11 - '@aws-sdk/token-providers': 3.1028.0 - '@aws-sdk/types': 3.973.7 - '@aws-sdk/util-endpoints': 3.996.6 - '@aws-sdk/util-user-agent-browser': 3.972.9 - '@aws-sdk/util-user-agent-node': 3.973.15 - '@smithy/config-resolver': 4.4.14 - '@smithy/core': 3.23.14 - '@smithy/fetch-http-handler': 5.3.16 - '@smithy/hash-node': 4.2.13 - '@smithy/invalid-dependency': 4.2.13 - '@smithy/middleware-content-length': 4.2.13 - '@smithy/middleware-endpoint': 4.4.29 - '@smithy/middleware-retry': 4.5.0 - '@smithy/middleware-serde': 4.2.17 - '@smithy/middleware-stack': 4.2.13 - '@smithy/node-config-provider': 4.3.13 - '@smithy/node-http-handler': 4.5.2 - '@smithy/protocol-http': 5.3.13 - '@smithy/smithy-client': 4.12.9 - '@smithy/types': 4.14.0 - '@smithy/url-parser': 4.2.13 + '@aws-sdk/types': 3.973.8 + '@aws-sdk/xml-builder': 3.972.18 + '@smithy/core': 3.23.16 + '@smithy/node-config-provider': 4.3.14 + '@smithy/property-provider': 4.2.14 + '@smithy/protocol-http': 5.3.14 + '@smithy/signature-v4': 5.3.14 + '@smithy/smithy-client': 4.12.12 + '@smithy/types': 4.14.1 '@smithy/util-base64': 4.3.2 - '@smithy/util-body-length-browser': 4.2.2 - '@smithy/util-body-length-node': 4.2.3 - '@smithy/util-defaults-mode-browser': 4.3.45 - '@smithy/util-defaults-mode-node': 4.2.49 - '@smithy/util-endpoints': 3.3.4 - '@smithy/util-middleware': 4.2.13 - '@smithy/util-retry': 4.3.0 - '@smithy/util-utf8': 4.2.2 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/client-cognito-identity@3.1027.0': - dependencies: - '@aws-crypto/sha256-browser': 5.2.0 - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.973.27 - '@aws-sdk/credential-provider-node': 3.972.30 - '@aws-sdk/middleware-host-header': 3.972.9 - '@aws-sdk/middleware-logger': 3.972.9 - '@aws-sdk/middleware-recursion-detection': 3.972.10 - '@aws-sdk/middleware-user-agent': 3.972.29 - '@aws-sdk/region-config-resolver': 3.972.11 - '@aws-sdk/types': 3.973.7 - '@aws-sdk/util-endpoints': 3.996.6 - '@aws-sdk/util-user-agent-browser': 3.972.9 - '@aws-sdk/util-user-agent-node': 3.973.15 - '@smithy/config-resolver': 4.4.14 - '@smithy/core': 3.23.14 - '@smithy/fetch-http-handler': 5.3.16 - '@smithy/hash-node': 4.2.13 - '@smithy/invalid-dependency': 4.2.13 - '@smithy/middleware-content-length': 4.2.13 - '@smithy/middleware-endpoint': 4.4.29 - '@smithy/middleware-retry': 4.5.0 - '@smithy/middleware-serde': 4.2.17 - '@smithy/middleware-stack': 4.2.13 - '@smithy/node-config-provider': 4.3.13 - '@smithy/node-http-handler': 4.5.2 - '@smithy/protocol-http': 5.3.13 - '@smithy/smithy-client': 4.12.9 - '@smithy/types': 4.14.0 - '@smithy/url-parser': 4.2.13 - '@smithy/util-base64': 4.3.2 - '@smithy/util-body-length-browser': 4.2.2 - '@smithy/util-body-length-node': 4.2.3 - '@smithy/util-defaults-mode-browser': 4.3.45 - '@smithy/util-defaults-mode-node': 4.2.49 - '@smithy/util-endpoints': 3.3.4 - '@smithy/util-middleware': 4.2.13 - '@smithy/util-retry': 4.3.0 - '@smithy/util-utf8': 4.2.2 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/core@3.973.27': - dependencies: - '@aws-sdk/types': 3.973.7 - '@aws-sdk/xml-builder': 3.972.17 - '@smithy/core': 3.23.14 - '@smithy/node-config-provider': 4.3.13 - '@smithy/property-provider': 4.2.13 - '@smithy/protocol-http': 5.3.13 - '@smithy/signature-v4': 5.3.13 - '@smithy/smithy-client': 4.12.9 - '@smithy/types': 4.14.0 - '@smithy/util-base64': 4.3.2 - '@smithy/util-middleware': 4.2.13 + '@smithy/util-middleware': 4.2.14 + '@smithy/util-retry': 4.3.3 '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 - '@aws-sdk/credential-provider-cognito-identity@3.972.22': + '@aws-sdk/credential-provider-env@3.972.30': dependencies: - '@aws-sdk/nested-clients': 3.996.19 - '@aws-sdk/types': 3.973.7 - '@smithy/property-provider': 4.2.13 - '@smithy/types': 4.14.0 + '@aws-sdk/core': 3.974.4 + '@aws-sdk/types': 3.973.8 + '@smithy/property-provider': 4.2.14 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-http@3.972.32': + dependencies: + '@aws-sdk/core': 3.974.4 + '@aws-sdk/types': 3.973.8 + '@smithy/fetch-http-handler': 5.3.17 + '@smithy/node-http-handler': 4.6.0 + '@smithy/property-provider': 4.2.14 + '@smithy/protocol-http': 5.3.14 + '@smithy/smithy-client': 4.12.12 + '@smithy/types': 4.14.1 + '@smithy/util-stream': 4.5.24 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-ini@3.972.34': + dependencies: + '@aws-sdk/core': 3.974.4 + '@aws-sdk/credential-provider-env': 3.972.30 + '@aws-sdk/credential-provider-http': 3.972.32 + '@aws-sdk/credential-provider-login': 3.972.34 + '@aws-sdk/credential-provider-process': 3.972.30 + '@aws-sdk/credential-provider-sso': 3.972.34 + '@aws-sdk/credential-provider-web-identity': 3.972.34 + '@aws-sdk/nested-clients': 3.997.2 + '@aws-sdk/types': 3.973.8 + '@smithy/credential-provider-imds': 4.2.14 + '@smithy/property-provider': 4.2.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-env@3.972.25': + '@aws-sdk/credential-provider-login@3.972.34': dependencies: - '@aws-sdk/core': 3.973.27 - '@aws-sdk/types': 3.973.7 - '@smithy/property-provider': 4.2.13 - '@smithy/types': 4.14.0 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-http@3.972.27': - dependencies: - '@aws-sdk/core': 3.973.27 - '@aws-sdk/types': 3.973.7 - '@smithy/fetch-http-handler': 5.3.16 - '@smithy/node-http-handler': 4.5.2 - '@smithy/property-provider': 4.2.13 - '@smithy/protocol-http': 5.3.13 - '@smithy/smithy-client': 4.12.9 - '@smithy/types': 4.14.0 - '@smithy/util-stream': 4.5.22 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-ini@3.972.29': - dependencies: - '@aws-sdk/core': 3.973.27 - '@aws-sdk/credential-provider-env': 3.972.25 - '@aws-sdk/credential-provider-http': 3.972.27 - '@aws-sdk/credential-provider-login': 3.972.29 - '@aws-sdk/credential-provider-process': 3.972.25 - '@aws-sdk/credential-provider-sso': 3.972.29 - '@aws-sdk/credential-provider-web-identity': 3.972.29 - '@aws-sdk/nested-clients': 3.996.19 - '@aws-sdk/types': 3.973.7 - '@smithy/credential-provider-imds': 4.2.13 - '@smithy/property-provider': 4.2.13 - '@smithy/shared-ini-file-loader': 4.4.8 - '@smithy/types': 4.14.0 + '@aws-sdk/core': 3.974.4 + '@aws-sdk/nested-clients': 3.997.2 + '@aws-sdk/types': 3.973.8 + '@smithy/property-provider': 4.2.14 + '@smithy/protocol-http': 5.3.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-login@3.972.29': + '@aws-sdk/credential-provider-node@3.972.35': dependencies: - '@aws-sdk/core': 3.973.27 - '@aws-sdk/nested-clients': 3.996.19 - '@aws-sdk/types': 3.973.7 - '@smithy/property-provider': 4.2.13 - '@smithy/protocol-http': 5.3.13 - '@smithy/shared-ini-file-loader': 4.4.8 - '@smithy/types': 4.14.0 + '@aws-sdk/credential-provider-env': 3.972.30 + '@aws-sdk/credential-provider-http': 3.972.32 + '@aws-sdk/credential-provider-ini': 3.972.34 + '@aws-sdk/credential-provider-process': 3.972.30 + '@aws-sdk/credential-provider-sso': 3.972.34 + '@aws-sdk/credential-provider-web-identity': 3.972.34 + '@aws-sdk/types': 3.973.8 + '@smithy/credential-provider-imds': 4.2.14 + '@smithy/property-provider': 4.2.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-node@3.972.30': + '@aws-sdk/credential-provider-process@3.972.30': dependencies: - '@aws-sdk/credential-provider-env': 3.972.25 - '@aws-sdk/credential-provider-http': 3.972.27 - '@aws-sdk/credential-provider-ini': 3.972.29 - '@aws-sdk/credential-provider-process': 3.972.25 - '@aws-sdk/credential-provider-sso': 3.972.29 - '@aws-sdk/credential-provider-web-identity': 3.972.29 - '@aws-sdk/types': 3.973.7 - '@smithy/credential-provider-imds': 4.2.13 - '@smithy/property-provider': 4.2.13 - '@smithy/shared-ini-file-loader': 4.4.8 - '@smithy/types': 4.14.0 + '@aws-sdk/core': 3.974.4 + '@aws-sdk/types': 3.973.8 + '@smithy/property-provider': 4.2.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-sso@3.972.34': + dependencies: + '@aws-sdk/core': 3.974.4 + '@aws-sdk/nested-clients': 3.997.2 + '@aws-sdk/token-providers': 3.1035.0 + '@aws-sdk/types': 3.973.8 + '@smithy/property-provider': 4.2.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-process@3.972.25': + '@aws-sdk/credential-provider-web-identity@3.972.34': dependencies: - '@aws-sdk/core': 3.973.27 - '@aws-sdk/types': 3.973.7 - '@smithy/property-provider': 4.2.13 - '@smithy/shared-ini-file-loader': 4.4.8 - '@smithy/types': 4.14.0 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-sso@3.972.29': - dependencies: - '@aws-sdk/core': 3.973.27 - '@aws-sdk/nested-clients': 3.996.19 - '@aws-sdk/token-providers': 3.1026.0 - '@aws-sdk/types': 3.973.7 - '@smithy/property-provider': 4.2.13 - '@smithy/shared-ini-file-loader': 4.4.8 - '@smithy/types': 4.14.0 + '@aws-sdk/core': 3.974.4 + '@aws-sdk/nested-clients': 3.997.2 + '@aws-sdk/types': 3.973.8 + '@smithy/property-provider': 4.2.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-web-identity@3.972.29': + '@aws-sdk/eventstream-handler-node@3.972.14': dependencies: - '@aws-sdk/core': 3.973.27 - '@aws-sdk/nested-clients': 3.996.19 - '@aws-sdk/types': 3.973.7 - '@smithy/property-provider': 4.2.13 - '@smithy/shared-ini-file-loader': 4.4.8 - '@smithy/types': 4.14.0 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/credential-providers@3.1027.0': - dependencies: - '@aws-sdk/client-cognito-identity': 3.1027.0 - '@aws-sdk/core': 3.973.27 - '@aws-sdk/credential-provider-cognito-identity': 3.972.22 - '@aws-sdk/credential-provider-env': 3.972.25 - '@aws-sdk/credential-provider-http': 3.972.27 - '@aws-sdk/credential-provider-ini': 3.972.29 - '@aws-sdk/credential-provider-login': 3.972.29 - '@aws-sdk/credential-provider-node': 3.972.30 - '@aws-sdk/credential-provider-process': 3.972.25 - '@aws-sdk/credential-provider-sso': 3.972.29 - '@aws-sdk/credential-provider-web-identity': 3.972.29 - '@aws-sdk/nested-clients': 3.996.19 - '@aws-sdk/types': 3.973.7 - '@smithy/config-resolver': 4.4.14 - '@smithy/core': 3.23.14 - '@smithy/credential-provider-imds': 4.2.13 - '@smithy/node-config-provider': 4.3.13 - '@smithy/property-provider': 4.2.13 - '@smithy/types': 4.14.0 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/eventstream-handler-node@3.972.13': - dependencies: - '@aws-sdk/types': 3.973.7 - '@smithy/eventstream-codec': 4.2.13 - '@smithy/types': 4.14.0 + '@aws-sdk/types': 3.973.8 + '@smithy/eventstream-codec': 4.2.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@aws-sdk/middleware-eventstream@3.972.9': + '@aws-sdk/middleware-eventstream@3.972.10': dependencies: - '@aws-sdk/types': 3.973.7 - '@smithy/protocol-http': 5.3.13 - '@smithy/types': 4.14.0 + '@aws-sdk/types': 3.973.8 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@aws-sdk/middleware-host-header@3.972.9': + '@aws-sdk/middleware-host-header@3.972.10': dependencies: - '@aws-sdk/types': 3.973.7 - '@smithy/protocol-http': 5.3.13 - '@smithy/types': 4.14.0 + '@aws-sdk/types': 3.973.8 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@aws-sdk/middleware-logger@3.972.9': + '@aws-sdk/middleware-logger@3.972.10': dependencies: - '@aws-sdk/types': 3.973.7 - '@smithy/types': 4.14.0 + '@aws-sdk/types': 3.973.8 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@aws-sdk/middleware-recursion-detection@3.972.10': + '@aws-sdk/middleware-recursion-detection@3.972.11': dependencies: - '@aws-sdk/types': 3.973.7 + '@aws-sdk/types': 3.973.8 '@aws/lambda-invoke-store': 0.2.4 - '@smithy/protocol-http': 5.3.13 - '@smithy/types': 4.14.0 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@aws-sdk/middleware-user-agent@3.972.29': + '@aws-sdk/middleware-sdk-s3@3.972.33': dependencies: - '@aws-sdk/core': 3.973.27 - '@aws-sdk/types': 3.973.7 - '@aws-sdk/util-endpoints': 3.996.6 - '@smithy/core': 3.23.14 - '@smithy/protocol-http': 5.3.13 - '@smithy/types': 4.14.0 - '@smithy/util-retry': 4.3.0 + '@aws-sdk/core': 3.974.4 + '@aws-sdk/types': 3.973.8 + '@aws-sdk/util-arn-parser': 3.972.3 + '@smithy/core': 3.23.16 + '@smithy/node-config-provider': 4.3.14 + '@smithy/protocol-http': 5.3.14 + '@smithy/signature-v4': 5.3.14 + '@smithy/smithy-client': 4.12.12 + '@smithy/types': 4.14.1 + '@smithy/util-config-provider': 4.2.2 + '@smithy/util-middleware': 4.2.14 + '@smithy/util-stream': 4.5.24 + '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 - '@aws-sdk/middleware-websocket@3.972.15': + '@aws-sdk/middleware-user-agent@3.972.34': dependencies: - '@aws-sdk/types': 3.973.7 - '@aws-sdk/util-format-url': 3.972.9 - '@smithy/eventstream-codec': 4.2.13 - '@smithy/eventstream-serde-browser': 4.2.13 - '@smithy/fetch-http-handler': 5.3.16 - '@smithy/protocol-http': 5.3.13 - '@smithy/signature-v4': 5.3.13 - '@smithy/types': 4.14.0 + '@aws-sdk/core': 3.974.4 + '@aws-sdk/types': 3.973.8 + '@aws-sdk/util-endpoints': 3.996.8 + '@smithy/core': 3.23.16 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 + '@smithy/util-retry': 4.3.3 + tslib: 2.8.1 + + '@aws-sdk/middleware-websocket@3.972.16': + dependencies: + '@aws-sdk/types': 3.973.8 + '@aws-sdk/util-format-url': 3.972.10 + '@smithy/eventstream-codec': 4.2.14 + '@smithy/eventstream-serde-browser': 4.2.14 + '@smithy/fetch-http-handler': 5.3.17 + '@smithy/protocol-http': 5.3.14 + '@smithy/signature-v4': 5.3.14 + '@smithy/types': 4.14.1 '@smithy/util-base64': 4.3.2 '@smithy/util-hex-encoding': 4.2.2 '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 - '@aws-sdk/nested-clients@3.996.19': + '@aws-sdk/nested-clients@3.997.2': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.973.27 - '@aws-sdk/middleware-host-header': 3.972.9 - '@aws-sdk/middleware-logger': 3.972.9 - '@aws-sdk/middleware-recursion-detection': 3.972.10 - '@aws-sdk/middleware-user-agent': 3.972.29 - '@aws-sdk/region-config-resolver': 3.972.11 - '@aws-sdk/types': 3.973.7 - '@aws-sdk/util-endpoints': 3.996.6 - '@aws-sdk/util-user-agent-browser': 3.972.9 - '@aws-sdk/util-user-agent-node': 3.973.15 - '@smithy/config-resolver': 4.4.14 - '@smithy/core': 3.23.14 - '@smithy/fetch-http-handler': 5.3.16 - '@smithy/hash-node': 4.2.13 - '@smithy/invalid-dependency': 4.2.13 - '@smithy/middleware-content-length': 4.2.13 - '@smithy/middleware-endpoint': 4.4.29 - '@smithy/middleware-retry': 4.5.0 - '@smithy/middleware-serde': 4.2.17 - '@smithy/middleware-stack': 4.2.13 - '@smithy/node-config-provider': 4.3.13 - '@smithy/node-http-handler': 4.5.2 - '@smithy/protocol-http': 5.3.13 - '@smithy/smithy-client': 4.12.9 - '@smithy/types': 4.14.0 - '@smithy/url-parser': 4.2.13 + '@aws-sdk/core': 3.974.4 + '@aws-sdk/middleware-host-header': 3.972.10 + '@aws-sdk/middleware-logger': 3.972.10 + '@aws-sdk/middleware-recursion-detection': 3.972.11 + '@aws-sdk/middleware-user-agent': 3.972.34 + '@aws-sdk/region-config-resolver': 3.972.13 + '@aws-sdk/signature-v4-multi-region': 3.996.21 + '@aws-sdk/types': 3.973.8 + '@aws-sdk/util-endpoints': 3.996.8 + '@aws-sdk/util-user-agent-browser': 3.972.10 + '@aws-sdk/util-user-agent-node': 3.973.20 + '@smithy/config-resolver': 4.4.17 + '@smithy/core': 3.23.16 + '@smithy/fetch-http-handler': 5.3.17 + '@smithy/hash-node': 4.2.14 + '@smithy/invalid-dependency': 4.2.14 + '@smithy/middleware-content-length': 4.2.14 + '@smithy/middleware-endpoint': 4.4.31 + '@smithy/middleware-retry': 4.5.4 + '@smithy/middleware-serde': 4.2.19 + '@smithy/middleware-stack': 4.2.14 + '@smithy/node-config-provider': 4.3.14 + '@smithy/node-http-handler': 4.6.0 + '@smithy/protocol-http': 5.3.14 + '@smithy/smithy-client': 4.12.12 + '@smithy/types': 4.14.1 + '@smithy/url-parser': 4.2.14 '@smithy/util-base64': 4.3.2 '@smithy/util-body-length-browser': 4.2.2 '@smithy/util-body-length-node': 4.2.3 - '@smithy/util-defaults-mode-browser': 4.3.45 - '@smithy/util-defaults-mode-node': 4.2.49 - '@smithy/util-endpoints': 3.3.4 - '@smithy/util-middleware': 4.2.13 - '@smithy/util-retry': 4.3.0 + '@smithy/util-defaults-mode-browser': 4.3.48 + '@smithy/util-defaults-mode-node': 4.2.53 + '@smithy/util-endpoints': 3.4.2 + '@smithy/util-middleware': 4.2.14 + '@smithy/util-retry': 4.3.3 '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/region-config-resolver@3.972.11': + '@aws-sdk/region-config-resolver@3.972.13': dependencies: - '@aws-sdk/types': 3.973.7 - '@smithy/config-resolver': 4.4.14 - '@smithy/node-config-provider': 4.3.13 - '@smithy/types': 4.14.0 + '@aws-sdk/types': 3.973.8 + '@smithy/config-resolver': 4.4.17 + '@smithy/node-config-provider': 4.3.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@aws-sdk/token-providers@3.1026.0': + '@aws-sdk/signature-v4-multi-region@3.996.21': dependencies: - '@aws-sdk/core': 3.973.27 - '@aws-sdk/nested-clients': 3.996.19 - '@aws-sdk/types': 3.973.7 - '@smithy/property-provider': 4.2.13 - '@smithy/shared-ini-file-loader': 4.4.8 - '@smithy/types': 4.14.0 + '@aws-sdk/middleware-sdk-s3': 3.972.33 + '@aws-sdk/types': 3.973.8 + '@smithy/protocol-http': 5.3.14 + '@smithy/signature-v4': 5.3.14 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + + '@aws-sdk/token-providers@3.1035.0': + dependencies: + '@aws-sdk/core': 3.974.4 + '@aws-sdk/nested-clients': 3.997.2 + '@aws-sdk/types': 3.973.8 + '@smithy/property-provider': 4.2.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/token-providers@3.1028.0': + '@aws-sdk/types@3.973.8': dependencies: - '@aws-sdk/core': 3.973.27 - '@aws-sdk/nested-clients': 3.996.19 - '@aws-sdk/types': 3.973.7 - '@smithy/property-provider': 4.2.13 - '@smithy/shared-ini-file-loader': 4.4.8 - '@smithy/types': 4.14.0 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/types@3.973.7': - dependencies: - '@smithy/types': 4.14.0 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@aws-sdk/util-endpoints@3.996.6': + '@aws-sdk/util-arn-parser@3.972.3': dependencies: - '@aws-sdk/types': 3.973.7 - '@smithy/types': 4.14.0 - '@smithy/url-parser': 4.2.13 - '@smithy/util-endpoints': 3.3.4 tslib: 2.8.1 - '@aws-sdk/util-format-url@3.972.9': + '@aws-sdk/util-endpoints@3.996.8': dependencies: - '@aws-sdk/types': 3.973.7 - '@smithy/querystring-builder': 4.2.13 - '@smithy/types': 4.14.0 + '@aws-sdk/types': 3.973.8 + '@smithy/types': 4.14.1 + '@smithy/url-parser': 4.2.14 + '@smithy/util-endpoints': 3.4.2 + tslib: 2.8.1 + + '@aws-sdk/util-format-url@3.972.10': + dependencies: + '@aws-sdk/types': 3.973.8 + '@smithy/querystring-builder': 4.2.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 '@aws-sdk/util-locate-window@3.965.5': dependencies: tslib: 2.8.1 - '@aws-sdk/util-user-agent-browser@3.972.9': + '@aws-sdk/util-user-agent-browser@3.972.10': dependencies: - '@aws-sdk/types': 3.973.7 - '@smithy/types': 4.14.0 + '@aws-sdk/types': 3.973.8 + '@smithy/types': 4.14.1 bowser: 2.14.1 tslib: 2.8.1 - '@aws-sdk/util-user-agent-node@3.973.15': + '@aws-sdk/util-user-agent-node@3.973.20': dependencies: - '@aws-sdk/middleware-user-agent': 3.972.29 - '@aws-sdk/types': 3.973.7 - '@smithy/node-config-provider': 4.3.13 - '@smithy/types': 4.14.0 + '@aws-sdk/middleware-user-agent': 3.972.34 + '@aws-sdk/types': 3.973.8 + '@smithy/node-config-provider': 4.3.14 + '@smithy/types': 4.14.1 '@smithy/util-config-provider': 4.2.2 tslib: 2.8.1 - '@aws-sdk/xml-builder@3.972.17': + '@aws-sdk/xml-builder@3.972.18': dependencies: - '@smithy/types': 4.14.0 + '@smithy/types': 4.14.1 fast-xml-parser: 5.5.8 tslib: 2.8.1 - '@aws/bedrock-token-generator@1.1.0': - dependencies: - '@aws-sdk/credential-providers': 3.1027.0 - '@aws-sdk/util-format-url': 3.972.9 - '@smithy/config-resolver': 4.4.14 - '@smithy/hash-node': 4.2.13 - '@smithy/invalid-dependency': 4.2.13 - '@smithy/node-config-provider': 4.3.13 - '@smithy/protocol-http': 5.3.13 - '@smithy/signature-v4': 5.3.13 - '@smithy/types': 4.14.0 - transitivePeerDependencies: - - aws-crt - '@aws/lambda-invoke-store@0.2.4': {} '@babel/code-frame@7.29.0': @@ -7670,14 +7213,13 @@ snapshots: dependencies: css-tree: 3.2.1 - '@buape/carbon@0.15.0(@discordjs/opus@0.10.0(encoding@0.1.13))(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.1)(hono@4.12.12)(opusscript@0.1.1)': + '@buape/carbon@0.16.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.9.1)(opusscript@0.1.1)': dependencies: '@types/node': 25.6.0 discord-api-types: 0.38.45 optionalDependencies: '@cloudflare/workers-types': 4.20260405.1 - '@discordjs/voice': 0.19.2(@discordjs/opus@0.10.0(encoding@0.1.13))(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.1)(opusscript@0.1.1) - '@hono/node-server': 1.19.13(hono@4.12.12) + '@discordjs/voice': 0.19.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.9.1)(opusscript@0.1.1) '@types/bun': 1.3.11 '@types/ws': 8.18.1 ws: 8.20.0 @@ -7687,7 +7229,6 @@ snapshots: - '@emnapi/runtime' - bufferutil - ffmpeg-static - - hono - node-opus - opusscript - utf-8-validate @@ -7765,37 +7306,12 @@ snapshots: ajv: 6.14.0 ajv-keywords: 3.5.2(ajv@6.14.0) - '@discordjs/node-pre-gyp@0.4.5(encoding@0.1.13)': + '@discordjs/voice@0.19.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.9.1)(opusscript@0.1.1)': dependencies: - detect-libc: 2.1.2 - https-proxy-agent: 7.0.6 - make-dir: 3.1.0 - node-fetch: 2.7.0(encoding@0.1.13) - nopt: 5.0.0 - npmlog: 5.0.1 - rimraf: 3.0.2 - semver: 7.7.4 - tar: 6.2.1 - transitivePeerDependencies: - - encoding - - supports-color - optional: true - - '@discordjs/opus@0.10.0(encoding@0.1.13)': - dependencies: - '@discordjs/node-pre-gyp': 0.4.5(encoding@0.1.13) - node-addon-api: 8.7.0 - transitivePeerDependencies: - - encoding - - supports-color - optional: true - - '@discordjs/voice@0.19.2(@discordjs/opus@0.10.0(encoding@0.1.13))(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.1)(opusscript@0.1.1)': - dependencies: - '@snazzah/davey': 0.1.11(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.1) + '@snazzah/davey': 0.1.11(@emnapi/core@1.10.0)(@emnapi/runtime@1.9.1) '@types/ws': 8.18.1 - discord-api-types: 0.38.45 - prism-media: 1.3.5(@discordjs/opus@0.10.0(encoding@0.1.13))(opusscript@0.1.1) + discord-api-types: 0.38.47 + prism-media: 1.3.5(opusscript@0.1.1) tslib: 2.8.1 ws: 8.20.0 transitivePeerDependencies: @@ -7807,7 +7323,6 @@ snapshots: - node-opus - opusscript - utf-8-validate - optional: true '@electron/asar@3.4.1': dependencies: @@ -7909,7 +7424,7 @@ snapshots: - supports-color optional: true - '@emnapi/core@1.9.2': + '@emnapi/core@1.10.0': dependencies: '@emnapi/wasi-threads': 1.2.1 tslib: 2.8.1 @@ -8091,7 +7606,7 @@ snapshots: '@hapi/hoek@9.3.0': {} - '@homebridge/ciao@1.3.6': + '@homebridge/ciao@1.3.7': dependencies: debug: 4.4.3 fast-deep-equal: 3.1.3 @@ -8235,6 +7750,7 @@ snapshots: mime: 3.0.0 transitivePeerDependencies: - supports-color + optional: true '@jimp/diff@1.6.1': dependencies: @@ -8244,8 +7760,10 @@ snapshots: pixelmatch: 5.3.0 transitivePeerDependencies: - supports-color + optional: true - '@jimp/file-ops@1.6.1': {} + '@jimp/file-ops@1.6.1': + optional: true '@jimp/js-bmp@1.6.1': dependencies: @@ -8255,6 +7773,7 @@ snapshots: bmp-ts: 1.0.9 transitivePeerDependencies: - supports-color + optional: true '@jimp/js-gif@1.6.1': dependencies: @@ -8264,6 +7783,7 @@ snapshots: omggif: 1.0.10 transitivePeerDependencies: - supports-color + optional: true '@jimp/js-jpeg@1.6.1': dependencies: @@ -8272,6 +7792,7 @@ snapshots: jpeg-js: 0.4.4 transitivePeerDependencies: - supports-color + optional: true '@jimp/js-png@1.6.1': dependencies: @@ -8280,6 +7801,7 @@ snapshots: pngjs: 7.0.0 transitivePeerDependencies: - supports-color + optional: true '@jimp/js-tiff@1.6.1': dependencies: @@ -8288,12 +7810,14 @@ snapshots: utif2: 4.1.0 transitivePeerDependencies: - supports-color + optional: true '@jimp/plugin-blit@1.6.1': dependencies: '@jimp/types': 1.6.1 '@jimp/utils': 1.6.1 zod: 3.25.76 + optional: true '@jimp/plugin-blur@1.6.1': dependencies: @@ -8301,11 +7825,13 @@ snapshots: '@jimp/utils': 1.6.1 transitivePeerDependencies: - supports-color + optional: true '@jimp/plugin-circle@1.6.1': dependencies: '@jimp/types': 1.6.1 zod: 3.25.76 + optional: true '@jimp/plugin-color@1.6.1': dependencies: @@ -8316,6 +7842,7 @@ snapshots: zod: 3.25.76 transitivePeerDependencies: - supports-color + optional: true '@jimp/plugin-contain@1.6.1': dependencies: @@ -8327,6 +7854,7 @@ snapshots: zod: 3.25.76 transitivePeerDependencies: - supports-color + optional: true '@jimp/plugin-cover@1.6.1': dependencies: @@ -8337,6 +7865,7 @@ snapshots: zod: 3.25.76 transitivePeerDependencies: - supports-color + optional: true '@jimp/plugin-crop@1.6.1': dependencies: @@ -8346,27 +7875,32 @@ snapshots: zod: 3.25.76 transitivePeerDependencies: - supports-color + optional: true '@jimp/plugin-displace@1.6.1': dependencies: '@jimp/types': 1.6.1 '@jimp/utils': 1.6.1 zod: 3.25.76 + optional: true '@jimp/plugin-dither@1.6.1': dependencies: '@jimp/types': 1.6.1 + optional: true '@jimp/plugin-fisheye@1.6.1': dependencies: '@jimp/types': 1.6.1 '@jimp/utils': 1.6.1 zod: 3.25.76 + optional: true '@jimp/plugin-flip@1.6.1': dependencies: '@jimp/types': 1.6.1 zod: 3.25.76 + optional: true '@jimp/plugin-hash@1.6.1': dependencies: @@ -8382,11 +7916,13 @@ snapshots: any-base: 1.1.0 transitivePeerDependencies: - supports-color + optional: true '@jimp/plugin-mask@1.6.1': dependencies: '@jimp/types': 1.6.1 zod: 3.25.76 + optional: true '@jimp/plugin-print@1.6.1': dependencies: @@ -8402,11 +7938,13 @@ snapshots: zod: 3.25.76 transitivePeerDependencies: - supports-color + optional: true '@jimp/plugin-quantize@1.6.1': dependencies: image-q: 4.0.0 zod: 3.25.76 + optional: true '@jimp/plugin-resize@1.6.1': dependencies: @@ -8415,6 +7953,7 @@ snapshots: zod: 3.25.76 transitivePeerDependencies: - supports-color + optional: true '@jimp/plugin-rotate@1.6.1': dependencies: @@ -8426,6 +7965,7 @@ snapshots: zod: 3.25.76 transitivePeerDependencies: - supports-color + optional: true '@jimp/plugin-threshold@1.6.1': dependencies: @@ -8437,15 +7977,18 @@ snapshots: zod: 3.25.76 transitivePeerDependencies: - supports-color + optional: true '@jimp/types@1.6.1': dependencies: zod: 3.25.76 + optional: true '@jimp/utils@1.6.1': dependencies: '@jimp/types': 1.6.1 tinycolor2: 1.6.0 + optional: true '@jridgewell/gen-mapping@0.3.13': dependencies: @@ -8474,54 +8017,20 @@ snapshots: '@keyv/serialize@1.1.1': {} - '@lancedb/lancedb-darwin-arm64@0.27.2': - optional: true - - '@lancedb/lancedb-linux-arm64-gnu@0.27.2': - optional: true - - '@lancedb/lancedb-linux-arm64-musl@0.27.2': - optional: true - - '@lancedb/lancedb-linux-x64-gnu@0.27.2': - optional: true - - '@lancedb/lancedb-linux-x64-musl@0.27.2': - optional: true - - '@lancedb/lancedb-win32-arm64-msvc@0.27.2': - optional: true - - '@lancedb/lancedb-win32-x64-msvc@0.27.2': - optional: true - - '@lancedb/lancedb@0.27.2(apache-arrow@18.1.0)': + '@larksuite/openclaw-lark@2026.4.8(openclaw@2026.4.26)': dependencies: - apache-arrow: 18.1.0 - reflect-metadata: 0.2.2 - optionalDependencies: - '@lancedb/lancedb-darwin-arm64': 0.27.2 - '@lancedb/lancedb-linux-arm64-gnu': 0.27.2 - '@lancedb/lancedb-linux-arm64-musl': 0.27.2 - '@lancedb/lancedb-linux-x64-gnu': 0.27.2 - '@lancedb/lancedb-linux-x64-musl': 0.27.2 - '@lancedb/lancedb-win32-arm64-msvc': 0.27.2 - '@lancedb/lancedb-win32-x64-msvc': 0.27.2 - - '@larksuite/openclaw-lark@2026.4.8(openclaw@2026.4.15(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.1)(@napi-rs/canvas@0.1.97)(@types/express@5.0.6)(apache-arrow@18.1.0)(encoding@0.1.13)(hono@4.12.12)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))': - dependencies: - '@larksuiteoapi/node-sdk': 1.60.0 + '@larksuiteoapi/node-sdk': 1.62.0 '@sinclair/typebox': 0.34.48 image-size: 2.0.2 zod: 4.3.6 optionalDependencies: - openclaw: 2026.4.15(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.1)(@napi-rs/canvas@0.1.97)(@types/express@5.0.6)(apache-arrow@18.1.0)(encoding@0.1.13)(hono@4.12.12)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + openclaw: 2026.4.26 transitivePeerDependencies: - bufferutil - debug - utf-8-validate - '@larksuiteoapi/node-sdk@1.60.0': + '@larksuiteoapi/node-sdk@1.62.0': dependencies: axios: 1.13.6(debug@4.4.3) lodash.identity: 3.0.0 @@ -8575,48 +8084,48 @@ snapshots: transitivePeerDependencies: - supports-color - '@mariozechner/clipboard-darwin-arm64@0.3.2': + '@mariozechner/clipboard-darwin-arm64@0.3.3': optional: true - '@mariozechner/clipboard-darwin-universal@0.3.2': + '@mariozechner/clipboard-darwin-universal@0.3.3': optional: true - '@mariozechner/clipboard-darwin-x64@0.3.2': + '@mariozechner/clipboard-darwin-x64@0.3.3': optional: true - '@mariozechner/clipboard-linux-arm64-gnu@0.3.2': + '@mariozechner/clipboard-linux-arm64-gnu@0.3.3': optional: true - '@mariozechner/clipboard-linux-arm64-musl@0.3.2': + '@mariozechner/clipboard-linux-arm64-musl@0.3.3': optional: true - '@mariozechner/clipboard-linux-riscv64-gnu@0.3.2': + '@mariozechner/clipboard-linux-riscv64-gnu@0.3.3': optional: true - '@mariozechner/clipboard-linux-x64-gnu@0.3.2': + '@mariozechner/clipboard-linux-x64-gnu@0.3.3': optional: true - '@mariozechner/clipboard-linux-x64-musl@0.3.2': + '@mariozechner/clipboard-linux-x64-musl@0.3.3': optional: true - '@mariozechner/clipboard-win32-arm64-msvc@0.3.2': + '@mariozechner/clipboard-win32-arm64-msvc@0.3.3': optional: true - '@mariozechner/clipboard-win32-x64-msvc@0.3.2': + '@mariozechner/clipboard-win32-x64-msvc@0.3.3': optional: true - '@mariozechner/clipboard@0.3.2': + '@mariozechner/clipboard@0.3.3': optionalDependencies: - '@mariozechner/clipboard-darwin-arm64': 0.3.2 - '@mariozechner/clipboard-darwin-universal': 0.3.2 - '@mariozechner/clipboard-darwin-x64': 0.3.2 - '@mariozechner/clipboard-linux-arm64-gnu': 0.3.2 - '@mariozechner/clipboard-linux-arm64-musl': 0.3.2 - '@mariozechner/clipboard-linux-riscv64-gnu': 0.3.2 - '@mariozechner/clipboard-linux-x64-gnu': 0.3.2 - '@mariozechner/clipboard-linux-x64-musl': 0.3.2 - '@mariozechner/clipboard-win32-arm64-msvc': 0.3.2 - '@mariozechner/clipboard-win32-x64-msvc': 0.3.2 + '@mariozechner/clipboard-darwin-arm64': 0.3.3 + '@mariozechner/clipboard-darwin-universal': 0.3.3 + '@mariozechner/clipboard-darwin-x64': 0.3.3 + '@mariozechner/clipboard-linux-arm64-gnu': 0.3.3 + '@mariozechner/clipboard-linux-arm64-musl': 0.3.3 + '@mariozechner/clipboard-linux-riscv64-gnu': 0.3.3 + '@mariozechner/clipboard-linux-x64-gnu': 0.3.3 + '@mariozechner/clipboard-linux-x64-musl': 0.3.3 + '@mariozechner/clipboard-win32-arm64-msvc': 0.3.3 + '@mariozechner/clipboard-win32-x64-msvc': 0.3.3 optional: true '@mariozechner/jiti@2.6.5': @@ -8624,9 +8133,10 @@ snapshots: std-env: 3.10.0 yoctocolors: 2.1.2 - '@mariozechner/pi-agent-core@0.66.1(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)': + '@mariozechner/pi-agent-core@0.70.2(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)': dependencies: - '@mariozechner/pi-ai': 0.66.1(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) + '@mariozechner/pi-ai': 0.70.2(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) + typebox: 1.1.33 transitivePeerDependencies: - '@modelcontextprotocol/sdk' - aws-crt @@ -8636,19 +8146,17 @@ snapshots: - ws - zod - '@mariozechner/pi-ai@0.66.1(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)': + '@mariozechner/pi-ai@0.70.2(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)': dependencies: - '@anthropic-ai/sdk': 0.73.0(zod@4.3.6) - '@aws-sdk/client-bedrock-runtime': 3.1028.0 + '@anthropic-ai/sdk': 0.90.0(zod@4.3.6) + '@aws-sdk/client-bedrock-runtime': 3.1035.0 '@google/genai': 1.49.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6)) - '@mistralai/mistralai': 1.14.1 - '@sinclair/typebox': 0.34.49 - ajv: 8.18.0 - ajv-formats: 3.0.1(ajv@8.18.0) + '@mistralai/mistralai': 2.2.1 chalk: 5.6.2 openai: 6.26.0(ws@8.20.0)(zod@4.3.6) partial-json: 0.1.7 proxy-agent: 6.5.0 + typebox: 1.1.33 undici: 7.24.6 zod-to-json-schema: 3.25.1(zod@4.3.6) transitivePeerDependencies: @@ -8660,14 +8168,13 @@ snapshots: - ws - zod - '@mariozechner/pi-coding-agent@0.66.1(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)': + '@mariozechner/pi-coding-agent@0.70.2(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)': dependencies: '@mariozechner/jiti': 2.6.5 - '@mariozechner/pi-agent-core': 0.66.1(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) - '@mariozechner/pi-ai': 0.66.1(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) - '@mariozechner/pi-tui': 0.66.1 + '@mariozechner/pi-agent-core': 0.70.2(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) + '@mariozechner/pi-ai': 0.70.2(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) + '@mariozechner/pi-tui': 0.70.2 '@silvia-odwyer/photon-node': 0.3.4 - ajv: 8.18.0 chalk: 5.6.2 cli-highlight: 2.1.11 diff: 8.0.4 @@ -8680,10 +8187,12 @@ snapshots: minimatch: 10.2.4 proper-lockfile: 4.1.2 strip-ansi: 7.2.0 + typebox: 1.1.33 undici: 7.24.6 + uuid: 14.0.0 yaml: 2.8.3 optionalDependencies: - '@mariozechner/clipboard': 0.3.2 + '@mariozechner/clipboard': 0.3.3 transitivePeerDependencies: - '@modelcontextprotocol/sdk' - aws-crt @@ -8693,7 +8202,7 @@ snapshots: - ws - zod - '@mariozechner/pi-tui@0.66.1': + '@mariozechner/pi-tui@0.70.2': dependencies: '@types/mime-types': 2.1.4 chalk: 5.6.2 @@ -8703,17 +8212,7 @@ snapshots: optionalDependencies: koffi: 2.15.2 - '@matrix-org/matrix-sdk-crypto-nodejs@0.4.0': - dependencies: - https-proxy-agent: 7.0.6 - node-downloader-helper: 2.1.11 - transitivePeerDependencies: - - supports-color - optional: true - - '@matrix-org/matrix-sdk-crypto-wasm@18.0.0': {} - - '@mistralai/mistralai@1.14.1': + '@mistralai/mistralai@2.2.1': dependencies: ws: 8.20.0 zod: 4.3.6 @@ -8744,8 +8243,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@mozilla/readability@0.6.0': {} - '@napi-rs/canvas-android-arm64@0.1.80': optional: true @@ -8835,21 +8332,17 @@ snapshots: '@napi-rs/canvas-linux-x64-musl': 0.1.97 '@napi-rs/canvas-win32-arm64-msvc': 0.1.97 '@napi-rs/canvas-win32-x64-msvc': 0.1.97 + optional: true - '@napi-rs/wasm-runtime@1.1.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.1)': + '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.9.1)': dependencies: - '@emnapi/core': 1.9.2 + '@emnapi/core': 1.10.0 '@emnapi/runtime': 1.9.1 '@tybys/wasm-util': 0.10.1 optional: true - '@noble/ciphers@2.1.1': {} - - '@noble/curves@2.0.1': - dependencies: - '@noble/hashes': 2.0.1 - - '@noble/hashes@2.0.1': {} + '@noble/hashes@2.0.1': + optional: true '@nodelib/fs.scandir@2.1.5': dependencies: @@ -8877,19 +8370,6 @@ snapshots: dependencies: semver: 7.7.4 - '@pierre/diffs@1.1.13(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': - dependencies: - '@pierre/theme': 0.0.28 - '@shikijs/transformers': 3.23.0 - diff: 8.0.3 - hast-util-to-html: 9.0.5 - lru_map: 0.4.1 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - shiki: 3.23.0 - - '@pierre/theme@0.0.28': {} - '@pinojs/redact@0.4.0': {} '@pkgjs/parseargs@0.11.0': @@ -9450,208 +8930,90 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.60.0': optional: true - '@scure/base@2.0.0': {} - - '@scure/bip32@2.0.1': - dependencies: - '@noble/curves': 2.0.1 - '@noble/hashes': 2.0.1 - '@scure/base': 2.0.0 - - '@scure/bip39@2.0.1': - dependencies: - '@noble/hashes': 2.0.1 - '@scure/base': 2.0.0 - - '@shikijs/core@3.23.0': - dependencies: - '@shikijs/types': 3.23.0 - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 - hast-util-to-html: 9.0.5 - - '@shikijs/engine-javascript@3.23.0': - dependencies: - '@shikijs/types': 3.23.0 - '@shikijs/vscode-textmate': 10.0.2 - oniguruma-to-es: 4.3.5 - - '@shikijs/engine-oniguruma@3.23.0': - dependencies: - '@shikijs/types': 3.23.0 - '@shikijs/vscode-textmate': 10.0.2 - - '@shikijs/langs@3.23.0': - dependencies: - '@shikijs/types': 3.23.0 - - '@shikijs/themes@3.23.0': - dependencies: - '@shikijs/types': 3.23.0 - - '@shikijs/transformers@3.23.0': - dependencies: - '@shikijs/core': 3.23.0 - '@shikijs/types': 3.23.0 - - '@shikijs/types@3.23.0': - dependencies: - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 - - '@shikijs/vscode-textmate@10.0.2': {} - '@silvia-odwyer/photon-node@0.3.4': {} '@sinclair/typebox@0.34.48': {} - '@sinclair/typebox@0.34.49': {} - '@sindresorhus/is@4.6.0': {} - '@slack/bolt@4.7.0(@types/express@5.0.6)': + '@smithy/config-resolver@4.4.17': dependencies: - '@slack/logger': 4.0.1 - '@slack/oauth': 3.0.5 - '@slack/socket-mode': 2.0.6 - '@slack/types': 2.20.1 - '@slack/web-api': 7.15.0 - '@types/express': 5.0.6 - axios: 1.13.6(debug@4.4.3) - express: 5.2.1 - path-to-regexp: 8.3.0 - raw-body: 3.0.2 - tsscmp: 1.0.6 - transitivePeerDependencies: - - bufferutil - - debug - - supports-color - - utf-8-validate - - '@slack/logger@4.0.1': - dependencies: - '@types/node': 25.6.0 - - '@slack/oauth@3.0.5': - dependencies: - '@slack/logger': 4.0.1 - '@slack/web-api': 7.15.0 - '@types/jsonwebtoken': 9.0.10 - '@types/node': 25.6.0 - jsonwebtoken: 9.0.3 - transitivePeerDependencies: - - debug - - '@slack/socket-mode@2.0.6': - dependencies: - '@slack/logger': 4.0.1 - '@slack/web-api': 7.15.0 - '@types/node': 25.6.0 - '@types/ws': 8.18.1 - eventemitter3: 5.0.4 - ws: 8.20.0 - transitivePeerDependencies: - - bufferutil - - debug - - utf-8-validate - - '@slack/types@2.20.1': {} - - '@slack/web-api@7.15.0': - dependencies: - '@slack/logger': 4.0.1 - '@slack/types': 2.20.1 - '@types/node': 25.6.0 - '@types/retry': 0.12.0 - axios: 1.13.6(debug@4.4.3) - eventemitter3: 5.0.4 - form-data: 4.0.5 - is-electron: 2.2.2 - is-stream: 2.0.1 - p-queue: 6.6.2 - p-retry: 4.6.2 - retry: 0.13.1 - transitivePeerDependencies: - - debug - - '@smithy/config-resolver@4.4.14': - dependencies: - '@smithy/node-config-provider': 4.3.13 - '@smithy/types': 4.14.0 + '@smithy/node-config-provider': 4.3.14 + '@smithy/types': 4.14.1 '@smithy/util-config-provider': 4.2.2 - '@smithy/util-endpoints': 3.3.4 - '@smithy/util-middleware': 4.2.13 + '@smithy/util-endpoints': 3.4.2 + '@smithy/util-middleware': 4.2.14 tslib: 2.8.1 - '@smithy/core@3.23.14': + '@smithy/core@3.23.16': dependencies: - '@smithy/protocol-http': 5.3.13 - '@smithy/types': 4.14.0 - '@smithy/url-parser': 4.2.13 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 + '@smithy/url-parser': 4.2.14 '@smithy/util-base64': 4.3.2 '@smithy/util-body-length-browser': 4.2.2 - '@smithy/util-middleware': 4.2.13 - '@smithy/util-stream': 4.5.22 + '@smithy/util-middleware': 4.2.14 + '@smithy/util-stream': 4.5.24 '@smithy/util-utf8': 4.2.2 '@smithy/uuid': 1.1.2 tslib: 2.8.1 - '@smithy/credential-provider-imds@4.2.13': + '@smithy/credential-provider-imds@4.2.14': dependencies: - '@smithy/node-config-provider': 4.3.13 - '@smithy/property-provider': 4.2.13 - '@smithy/types': 4.14.0 - '@smithy/url-parser': 4.2.13 + '@smithy/node-config-provider': 4.3.14 + '@smithy/property-provider': 4.2.14 + '@smithy/types': 4.14.1 + '@smithy/url-parser': 4.2.14 tslib: 2.8.1 - '@smithy/eventstream-codec@4.2.13': + '@smithy/eventstream-codec@4.2.14': dependencies: '@aws-crypto/crc32': 5.2.0 - '@smithy/types': 4.14.0 + '@smithy/types': 4.14.1 '@smithy/util-hex-encoding': 4.2.2 tslib: 2.8.1 - '@smithy/eventstream-serde-browser@4.2.13': + '@smithy/eventstream-serde-browser@4.2.14': dependencies: - '@smithy/eventstream-serde-universal': 4.2.13 - '@smithy/types': 4.14.0 + '@smithy/eventstream-serde-universal': 4.2.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/eventstream-serde-config-resolver@4.3.13': + '@smithy/eventstream-serde-config-resolver@4.3.14': dependencies: - '@smithy/types': 4.14.0 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/eventstream-serde-node@4.2.13': + '@smithy/eventstream-serde-node@4.2.14': dependencies: - '@smithy/eventstream-serde-universal': 4.2.13 - '@smithy/types': 4.14.0 + '@smithy/eventstream-serde-universal': 4.2.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/eventstream-serde-universal@4.2.13': + '@smithy/eventstream-serde-universal@4.2.14': dependencies: - '@smithy/eventstream-codec': 4.2.13 - '@smithy/types': 4.14.0 + '@smithy/eventstream-codec': 4.2.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/fetch-http-handler@5.3.16': + '@smithy/fetch-http-handler@5.3.17': dependencies: - '@smithy/protocol-http': 5.3.13 - '@smithy/querystring-builder': 4.2.13 - '@smithy/types': 4.14.0 + '@smithy/protocol-http': 5.3.14 + '@smithy/querystring-builder': 4.2.14 + '@smithy/types': 4.14.1 '@smithy/util-base64': 4.3.2 tslib: 2.8.1 - '@smithy/hash-node@4.2.13': + '@smithy/hash-node@4.2.14': dependencies: - '@smithy/types': 4.14.0 + '@smithy/types': 4.14.1 '@smithy/util-buffer-from': 4.2.2 '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 - '@smithy/invalid-dependency@4.2.13': + '@smithy/invalid-dependency@4.2.14': dependencies: - '@smithy/types': 4.14.0 + '@smithy/types': 4.14.1 tslib: 2.8.1 '@smithy/is-array-buffer@2.2.0': @@ -9662,121 +9024,121 @@ snapshots: dependencies: tslib: 2.8.1 - '@smithy/middleware-content-length@4.2.13': + '@smithy/middleware-content-length@4.2.14': dependencies: - '@smithy/protocol-http': 5.3.13 - '@smithy/types': 4.14.0 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/middleware-endpoint@4.4.29': + '@smithy/middleware-endpoint@4.4.31': dependencies: - '@smithy/core': 3.23.14 - '@smithy/middleware-serde': 4.2.17 - '@smithy/node-config-provider': 4.3.13 - '@smithy/shared-ini-file-loader': 4.4.8 - '@smithy/types': 4.14.0 - '@smithy/url-parser': 4.2.13 - '@smithy/util-middleware': 4.2.13 + '@smithy/core': 3.23.16 + '@smithy/middleware-serde': 4.2.19 + '@smithy/node-config-provider': 4.3.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 + '@smithy/url-parser': 4.2.14 + '@smithy/util-middleware': 4.2.14 tslib: 2.8.1 - '@smithy/middleware-retry@4.5.0': + '@smithy/middleware-retry@4.5.4': dependencies: - '@smithy/core': 3.23.14 - '@smithy/node-config-provider': 4.3.13 - '@smithy/protocol-http': 5.3.13 - '@smithy/service-error-classification': 4.2.13 - '@smithy/smithy-client': 4.12.9 - '@smithy/types': 4.14.0 - '@smithy/util-middleware': 4.2.13 - '@smithy/util-retry': 4.3.0 + '@smithy/core': 3.23.16 + '@smithy/node-config-provider': 4.3.14 + '@smithy/protocol-http': 5.3.14 + '@smithy/service-error-classification': 4.3.0 + '@smithy/smithy-client': 4.12.12 + '@smithy/types': 4.14.1 + '@smithy/util-middleware': 4.2.14 + '@smithy/util-retry': 4.3.3 '@smithy/uuid': 1.1.2 tslib: 2.8.1 - '@smithy/middleware-serde@4.2.17': + '@smithy/middleware-serde@4.2.19': dependencies: - '@smithy/core': 3.23.14 - '@smithy/protocol-http': 5.3.13 - '@smithy/types': 4.14.0 + '@smithy/core': 3.23.16 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/middleware-stack@4.2.13': + '@smithy/middleware-stack@4.2.14': dependencies: - '@smithy/types': 4.14.0 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/node-config-provider@4.3.13': + '@smithy/node-config-provider@4.3.14': dependencies: - '@smithy/property-provider': 4.2.13 - '@smithy/shared-ini-file-loader': 4.4.8 - '@smithy/types': 4.14.0 + '@smithy/property-provider': 4.2.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/node-http-handler@4.5.2': + '@smithy/node-http-handler@4.6.0': dependencies: - '@smithy/protocol-http': 5.3.13 - '@smithy/querystring-builder': 4.2.13 - '@smithy/types': 4.14.0 + '@smithy/protocol-http': 5.3.14 + '@smithy/querystring-builder': 4.2.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/property-provider@4.2.13': + '@smithy/property-provider@4.2.14': dependencies: - '@smithy/types': 4.14.0 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/protocol-http@5.3.13': + '@smithy/protocol-http@5.3.14': dependencies: - '@smithy/types': 4.14.0 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/querystring-builder@4.2.13': + '@smithy/querystring-builder@4.2.14': dependencies: - '@smithy/types': 4.14.0 + '@smithy/types': 4.14.1 '@smithy/util-uri-escape': 4.2.2 tslib: 2.8.1 - '@smithy/querystring-parser@4.2.13': + '@smithy/querystring-parser@4.2.14': dependencies: - '@smithy/types': 4.14.0 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/service-error-classification@4.2.13': + '@smithy/service-error-classification@4.3.0': dependencies: - '@smithy/types': 4.14.0 + '@smithy/types': 4.14.1 - '@smithy/shared-ini-file-loader@4.4.8': + '@smithy/shared-ini-file-loader@4.4.9': dependencies: - '@smithy/types': 4.14.0 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/signature-v4@5.3.13': + '@smithy/signature-v4@5.3.14': dependencies: '@smithy/is-array-buffer': 4.2.2 - '@smithy/protocol-http': 5.3.13 - '@smithy/types': 4.14.0 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 '@smithy/util-hex-encoding': 4.2.2 - '@smithy/util-middleware': 4.2.13 + '@smithy/util-middleware': 4.2.14 '@smithy/util-uri-escape': 4.2.2 '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 - '@smithy/smithy-client@4.12.9': + '@smithy/smithy-client@4.12.12': dependencies: - '@smithy/core': 3.23.14 - '@smithy/middleware-endpoint': 4.4.29 - '@smithy/middleware-stack': 4.2.13 - '@smithy/protocol-http': 5.3.13 - '@smithy/types': 4.14.0 - '@smithy/util-stream': 4.5.22 + '@smithy/core': 3.23.16 + '@smithy/middleware-endpoint': 4.4.31 + '@smithy/middleware-stack': 4.2.14 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 + '@smithy/util-stream': 4.5.24 tslib: 2.8.1 - '@smithy/types@4.14.0': + '@smithy/types@4.14.1': dependencies: tslib: 2.8.1 - '@smithy/url-parser@4.2.13': + '@smithy/url-parser@4.2.14': dependencies: - '@smithy/querystring-parser': 4.2.13 - '@smithy/types': 4.14.0 + '@smithy/querystring-parser': 4.2.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 '@smithy/util-base64@4.3.2': @@ -9807,49 +9169,49 @@ snapshots: dependencies: tslib: 2.8.1 - '@smithy/util-defaults-mode-browser@4.3.45': + '@smithy/util-defaults-mode-browser@4.3.48': dependencies: - '@smithy/property-provider': 4.2.13 - '@smithy/smithy-client': 4.12.9 - '@smithy/types': 4.14.0 + '@smithy/property-provider': 4.2.14 + '@smithy/smithy-client': 4.12.12 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/util-defaults-mode-node@4.2.49': + '@smithy/util-defaults-mode-node@4.2.53': dependencies: - '@smithy/config-resolver': 4.4.14 - '@smithy/credential-provider-imds': 4.2.13 - '@smithy/node-config-provider': 4.3.13 - '@smithy/property-provider': 4.2.13 - '@smithy/smithy-client': 4.12.9 - '@smithy/types': 4.14.0 + '@smithy/config-resolver': 4.4.17 + '@smithy/credential-provider-imds': 4.2.14 + '@smithy/node-config-provider': 4.3.14 + '@smithy/property-provider': 4.2.14 + '@smithy/smithy-client': 4.12.12 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/util-endpoints@3.3.4': + '@smithy/util-endpoints@3.4.2': dependencies: - '@smithy/node-config-provider': 4.3.13 - '@smithy/types': 4.14.0 + '@smithy/node-config-provider': 4.3.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 '@smithy/util-hex-encoding@4.2.2': dependencies: tslib: 2.8.1 - '@smithy/util-middleware@4.2.13': + '@smithy/util-middleware@4.2.14': dependencies: - '@smithy/types': 4.14.0 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/util-retry@4.3.0': + '@smithy/util-retry@4.3.3': dependencies: - '@smithy/service-error-classification': 4.2.13 - '@smithy/types': 4.14.0 + '@smithy/service-error-classification': 4.3.0 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/util-stream@4.5.22': + '@smithy/util-stream@4.5.24': dependencies: - '@smithy/fetch-http-handler': 5.3.16 - '@smithy/node-http-handler': 4.5.2 - '@smithy/types': 4.14.0 + '@smithy/fetch-http-handler': 5.3.17 + '@smithy/node-http-handler': 4.6.0 + '@smithy/types': 4.14.1 '@smithy/util-base64': 4.3.2 '@smithy/util-buffer-from': 4.2.2 '@smithy/util-hex-encoding': 4.2.2 @@ -9904,9 +9266,9 @@ snapshots: '@snazzah/davey-linux-x64-musl@0.1.11': optional: true - '@snazzah/davey-wasm32-wasi@0.1.11(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.1)': + '@snazzah/davey-wasm32-wasi@0.1.11(@emnapi/core@1.10.0)(@emnapi/runtime@1.9.1)': dependencies: - '@napi-rs/wasm-runtime': 1.1.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.1) + '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.9.1) transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' @@ -9921,7 +9283,7 @@ snapshots: '@snazzah/davey-win32-x64-msvc@0.1.11': optional: true - '@snazzah/davey@0.1.11(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.1)': + '@snazzah/davey@0.1.11(@emnapi/core@1.10.0)(@emnapi/runtime@1.9.1)': optionalDependencies: '@snazzah/davey-android-arm-eabi': 0.1.11 '@snazzah/davey-android-arm64': 0.1.11 @@ -9933,16 +9295,15 @@ snapshots: '@snazzah/davey-linux-arm64-musl': 0.1.11 '@snazzah/davey-linux-x64-gnu': 0.1.11 '@snazzah/davey-linux-x64-musl': 0.1.11 - '@snazzah/davey-wasm32-wasi': 0.1.11(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.1) + '@snazzah/davey-wasm32-wasi': 0.1.11(@emnapi/core@1.10.0)(@emnapi/runtime@1.9.1) '@snazzah/davey-win32-arm64-msvc': 0.1.11 '@snazzah/davey-win32-ia32-msvc': 0.1.11 '@snazzah/davey-win32-x64-msvc': 0.1.11 transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' - optional: true - '@soimy/dingtalk@3.5.3(openclaw@2026.4.15(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.1)(@napi-rs/canvas@0.1.97)(@types/express@5.0.6)(apache-arrow@18.1.0)(encoding@0.1.13)(hono@4.12.12)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))': + '@soimy/dingtalk@3.5.3(openclaw@2026.4.26)': dependencies: axios: 1.13.6(debug@4.4.3) dingtalk-stream: 2.1.5 @@ -9951,7 +9312,7 @@ snapshots: pdf-parse: 2.4.5 zod: 4.3.6 optionalDependencies: - openclaw: 2026.4.15(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.1)(@napi-rs/canvas@0.1.97)(@types/express@5.0.6)(apache-arrow@18.1.0)(encoding@0.1.13)(hono@4.12.12)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + openclaw: 2026.4.26 transitivePeerDependencies: - bufferutil - debug @@ -9960,15 +9321,15 @@ snapshots: '@standard-schema/spec@1.1.0': {} - '@swc/helpers@0.5.21': - dependencies: - tslib: 2.8.1 - '@szmarczak/http-timer@4.0.6': dependencies: defer-to-connect: 2.0.1 - '@tencent-weixin/openclaw-weixin@2.1.8': + '@tencent-connect/qqbot-connector@1.1.0': + dependencies: + qrcode-terminal: 0.12.0 + + '@tencent-weixin/openclaw-weixin@2.1.9': dependencies: qrcode-terminal: 0.12.0 zod: 4.3.6 @@ -10042,11 +9403,6 @@ snapshots: dependencies: '@babel/types': 7.29.0 - '@types/body-parser@1.19.6': - dependencies: - '@types/connect': 3.4.38 - '@types/node': 25.6.0 - '@types/bun@1.3.11': dependencies: bun-types: 1.3.11 @@ -10064,14 +9420,6 @@ snapshots: '@types/deep-eql': 4.0.2 assertion-error: 2.0.1 - '@types/command-line-args@5.2.3': {} - - '@types/command-line-usage@5.0.4': {} - - '@types/connect@3.4.38': - dependencies: - '@types/node': 25.6.0 - '@types/debug@4.1.13': dependencies: '@types/ms': 2.1.0 @@ -10086,21 +9434,6 @@ snapshots: '@types/estree@1.0.8': {} - '@types/events@3.0.3': {} - - '@types/express-serve-static-core@5.1.1': - dependencies: - '@types/node': 25.6.0 - '@types/qs': 6.15.0 - '@types/range-parser': 1.2.7 - '@types/send': 1.2.1 - - '@types/express@5.0.6': - dependencies: - '@types/body-parser': 1.19.6 - '@types/express-serve-static-core': 5.1.1 - '@types/serve-static': 2.2.0 - '@types/fs-extra@9.0.13': dependencies: '@types/node': 25.5.0 @@ -10111,15 +9444,8 @@ snapshots: '@types/http-cache-semantics@4.2.0': {} - '@types/http-errors@2.0.5': {} - '@types/json-schema@7.0.15': {} - '@types/jsonwebtoken@9.0.10': - dependencies: - '@types/ms': 2.1.0 - '@types/node': 25.6.0 - '@types/katex@0.16.8': {} '@types/keyv@3.1.4': @@ -10138,11 +9464,8 @@ snapshots: '@types/node@10.17.60': {} - '@types/node@16.9.1': {} - - '@types/node@20.19.39': - dependencies: - undici-types: 6.21.0 + '@types/node@16.9.1': + optional: true '@types/node@24.12.0': dependencies: @@ -10162,10 +9485,6 @@ snapshots: xmlbuilder: 15.1.1 optional: true - '@types/qs@6.15.0': {} - - '@types/range-parser@1.2.7': {} - '@types/react-dom@19.2.3(@types/react@19.2.14)': dependencies: '@types/react': 19.2.14 @@ -10180,15 +9499,6 @@ snapshots: '@types/retry@0.12.0': {} - '@types/send@1.2.1': - dependencies: - '@types/node': 25.6.0 - - '@types/serve-static@2.2.0': - dependencies: - '@types/http-errors': 2.0.5 - '@types/node': 25.6.0 - '@types/unist@2.0.11': {} '@types/unist@3.0.3': {} @@ -10298,7 +9608,11 @@ snapshots: '@ungap/structured-clone@1.3.0': {} - '@vitejs/plugin-react@5.2.0(vite@7.3.1(@types/node@25.5.0)(jiti@1.21.7)(yaml@2.8.3))': + '@vincentkoc/qrcode-tui@0.2.1': + dependencies: + qrcode: 1.5.4 + + '@vitejs/plugin-react@5.2.0(vite@7.3.1(@types/node@25.5.0)(jiti@1.21.7)(tsx@4.21.0)(yaml@2.8.3))': dependencies: '@babel/core': 7.29.0 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.29.0) @@ -10306,7 +9620,7 @@ snapshots: '@rolldown/pluginutils': 1.0.0-rc.3 '@types/babel__core': 7.20.5 react-refresh: 0.18.0 - vite: 7.3.1(@types/node@25.5.0)(jiti@1.21.7)(yaml@2.8.3) + vite: 7.3.1(@types/node@25.5.0)(jiti@1.21.7)(tsx@4.21.0)(yaml@2.8.3) transitivePeerDependencies: - supports-color @@ -10319,13 +9633,13 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.1(vite@7.3.1(@types/node@25.5.0)(jiti@1.21.7)(yaml@2.8.3))': + '@vitest/mocker@4.1.1(vite@7.3.1(@types/node@25.5.0)(jiti@1.21.7)(tsx@4.21.0)(yaml@2.8.3))': dependencies: '@vitest/spy': 4.1.1 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 7.3.1(@types/node@25.5.0)(jiti@1.21.7)(yaml@2.8.3) + vite: 7.3.1(@types/node@25.5.0)(jiti@1.21.7)(tsx@4.21.0)(yaml@2.8.3) '@vitest/pretty-format@4.1.1': dependencies: @@ -10366,7 +9680,7 @@ snapshots: - debug - utf-8-validate - '@wecom/wecom-openclaw-plugin@2026.4.8': + '@wecom/wecom-openclaw-plugin@2026.4.2201': dependencies: '@wecom/aibot-node-sdk': 1.0.6 fast-xml-parser: 5.5.10 @@ -10406,9 +9720,6 @@ snapshots: '@xmldom/xmldom@0.8.11': {} - abbrev@1.1.1: - optional: true - abbrev@3.0.1: {} abort-controller@3.0.0: @@ -10426,6 +9737,18 @@ snapshots: acorn@8.16.0: {} + acpx@0.5.3: + dependencies: + '@agentclientprotocol/sdk': 0.17.1(zod@4.3.6) + commander: 14.0.3 + skillflag: 0.1.4 + tsx: 4.21.0 + zod: 4.3.6 + transitivePeerDependencies: + - bare-abort-controller + - bare-buffer + - react-native-b4a + agent-base@7.1.4: {} agent-base@9.0.0: {} @@ -10452,8 +9775,6 @@ snapshots: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - another-json@0.2.0: {} - ansi-regex@5.0.1: {} ansi-regex@6.2.2: {} @@ -10466,7 +9787,8 @@ snapshots: ansi-styles@6.2.3: {} - any-base@1.1.0: {} + any-base@1.1.0: + optional: true any-promise@1.3.0: {} @@ -10475,18 +9797,6 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.2 - apache-arrow@18.1.0: - dependencies: - '@swc/helpers': 0.5.21 - '@types/command-line-args': 5.2.3 - '@types/command-line-usage': 5.0.4 - '@types/node': 20.19.39 - command-line-args: 5.2.1 - command-line-usage: 7.0.4 - flatbuffers: 24.12.23 - json-bignum: 0.0.3 - tslib: 2.8.1 - app-builder-bin@5.0.0-alpha.12: {} app-builder-lib@26.8.1(dmg-builder@26.8.1)(electron-builder-squirrel-windows@26.8.1): @@ -10532,15 +9842,6 @@ snapshots: transitivePeerDependencies: - supports-color - aproba@2.1.0: - optional: true - - are-we-there-yet@2.0.0: - dependencies: - delegates: 1.0.0 - readable-stream: 3.6.2 - optional: true - arg@5.0.2: {} argparse@1.0.10: @@ -10569,9 +9870,12 @@ snapshots: '@ark/util': 0.56.0 arkregex: 0.0.5 - array-back@3.1.0: {} - - array-back@6.2.3: {} + asn1.js@5.4.1: + dependencies: + bn.js: 4.12.3 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + safer-buffer: 2.1.2 assert-plus@1.0.0: optional: true @@ -10613,7 +9917,8 @@ snapshots: postcss: 8.5.8 postcss-value-parser: 4.2.0 - await-to-js@3.0.0: {} + await-to-js@3.0.0: + optional: true axios@1.13.6(debug@4.4.3): dependencies: @@ -10623,13 +9928,45 @@ snapshots: transitivePeerDependencies: - debug + b4a@1.8.0: {} + bail@2.0.2: {} balanced-match@1.0.2: {} balanced-match@4.0.4: {} - base-x@5.0.1: {} + bare-events@2.8.2: {} + + bare-fs@4.7.1: + dependencies: + bare-events: 2.8.2 + bare-path: 3.0.0 + bare-stream: 2.13.0(bare-events@2.8.2) + bare-url: 2.4.2 + fast-fifo: 1.3.2 + transitivePeerDependencies: + - bare-abort-controller + - react-native-b4a + + bare-os@3.9.0: {} + + bare-path@3.0.0: + dependencies: + bare-os: 3.9.0 + + bare-stream@2.13.0(bare-events@2.8.2): + dependencies: + streamx: 2.25.0 + teex: 1.0.1 + optionalDependencies: + bare-events: 2.8.2 + transitivePeerDependencies: + - react-native-b4a + + bare-url@2.4.2: + dependencies: + bare-path: 3.0.0 base64-js@1.5.1: {} @@ -10653,7 +9990,10 @@ snapshots: bluebird@3.4.7: {} - bmp-ts@1.0.9: {} + bmp-ts@1.0.9: + optional: true + + bn.js@4.12.3: {} body-parser@2.2.2: dependencies: @@ -10669,8 +10009,6 @@ snapshots: transitivePeerDependencies: - supports-color - boolbase@1.0.0: {} - boolean@3.2.0: optional: true @@ -10703,10 +10041,6 @@ snapshots: node-releases: 2.0.36 update-browserslist-db: 1.2.3(browserslist@4.28.1) - bs58@6.0.0: - dependencies: - base-x: 5.0.1 - buffer-crc32@0.2.13: {} buffer-equal-constant-time@1.0.1: {} @@ -10800,16 +10134,14 @@ snapshots: camelcase-css@2.0.1: {} + camelcase@5.3.1: {} + caniuse-lite@1.0.30001781: {} ccount@2.0.1: {} chai@6.2.2: {} - chalk-template@0.4.0: - dependencies: - chalk: 4.1.2 - chalk@4.1.2: dependencies: ansi-styles: 4.3.0 @@ -10841,8 +10173,7 @@ snapshots: dependencies: readdirp: 5.0.0 - chownr@2.0.0: - optional: true + chownr@2.0.0: {} chownr@3.0.0: {} @@ -10897,6 +10228,12 @@ snapshots: string-width: 4.2.3 optional: true + cliui@6.0.0: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + cliui@7.0.4: dependencies: string-width: 4.2.3 @@ -10923,29 +10260,12 @@ snapshots: color-name@1.1.4: {} - color-support@1.1.3: - optional: true - combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 comma-separated-tokens@2.0.3: {} - command-line-args@5.2.1: - dependencies: - array-back: 3.1.0 - find-replace: 3.0.0 - lodash.camelcase: 4.3.0 - typical: 4.0.0 - - command-line-usage@7.0.4: - dependencies: - array-back: 6.2.3 - chalk-template: 0.4.0 - table-layout: 4.1.1 - typical: 7.3.0 - commander@14.0.3: {} commander@4.1.1: {} @@ -10973,9 +10293,6 @@ snapshots: semver: 7.7.4 uint8array-extras: 1.5.0 - console-control-strings@1.1.0: - optional: true - content-disposition@1.0.1: {} content-type@1.0.5: {} @@ -11014,27 +10331,15 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - css-select@5.2.2: - dependencies: - boolbase: 1.0.0 - css-what: 6.2.2 - domhandler: 5.0.3 - domutils: 3.2.2 - nth-check: 2.1.1 - css-tree@3.2.1: dependencies: mdn-data: 2.27.1 source-map-js: 1.2.1 - css-what@6.2.2: {} - css.escape@1.5.1: {} cssesc@3.0.0: {} - cssom@0.5.0: {} - cssstyle@6.2.0: dependencies: '@asamuzakjp/css-color': 5.0.1 @@ -11067,6 +10372,8 @@ snapshots: dependencies: ms: 2.1.3 + decamelize@1.2.0: {} + decimal.js@10.6.0: {} decode-named-character-reference@1.3.0: @@ -11114,9 +10421,6 @@ snapshots: delayed-stream@1.0.0: {} - delegates@1.0.0: - optional: true - depd@2.0.0: {} dequal@2.0.3: {} @@ -11134,10 +10438,10 @@ snapshots: didyoumean@1.2.2: {} - diff@8.0.3: {} - diff@8.0.4: {} + dijkstrajs@1.0.3: {} + dingbat-to-unicode@1.0.1: {} dingtalk-stream@2.1.5: @@ -11157,6 +10461,8 @@ snapshots: discord-api-types@0.38.45: {} + discord-api-types@0.38.47: {} + dlv@1.1.3: {} dmg-builder@26.8.1(electron-builder-squirrel-windows@26.8.1): @@ -11188,24 +10494,6 @@ snapshots: dom-accessibility-api@0.6.3: {} - dom-serializer@2.0.0: - dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - entities: 4.5.0 - - domelementtype@2.3.0: {} - - domhandler@5.0.3: - dependencies: - domelementtype: 2.3.0 - - domutils@3.2.2: - dependencies: - dom-serializer: 2.0.0 - domelementtype: 2.3.0 - domhandler: 5.0.3 - dot-prop@10.1.0: dependencies: type-fest: 5.5.0 @@ -11216,7 +10504,7 @@ snapshots: dotenv@16.6.1: {} - dotenv@17.4.1: {} + dotenv@17.4.2: {} duck@0.1.12: dependencies: @@ -11337,8 +10625,6 @@ snapshots: entities@6.0.1: {} - entities@7.0.1: {} - env-paths@2.2.1: {} env-paths@3.0.0: {} @@ -11503,11 +10789,13 @@ snapshots: event-target-shim@5.0.1: {} - eventemitter3@4.0.7: {} - eventemitter3@5.0.4: {} - events@3.3.0: {} + events-universal@1.0.1: + dependencies: + bare-events: 2.8.2 + transitivePeerDependencies: + - bare-abort-controller eventsource-parser@3.0.6: {} @@ -11515,7 +10803,8 @@ snapshots: dependencies: eventsource-parser: 3.0.6 - exif-parser@0.1.12: {} + exif-parser@0.1.12: + optional: true expect-type@1.3.0: {} @@ -11574,11 +10863,10 @@ snapshots: extsprintf@1.4.1: optional: true - fake-indexeddb@6.2.5: - optional: true - fast-deep-equal@3.1.3: {} + fast-fifo@1.3.2: {} + fast-glob@3.3.3: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -11679,9 +10967,10 @@ snapshots: transitivePeerDependencies: - supports-color - find-replace@3.0.0: + find-up@4.1.0: dependencies: - array-back: 3.1.0 + locate-path: 5.0.0 + path-exists: 4.0.0 find-up@5.0.0: dependencies: @@ -11693,8 +10982,6 @@ snapshots: flatted: 3.4.2 keyv: 4.5.4 - flatbuffers@24.12.23: {} - flatted@3.4.2: {} follow-redirects@1.15.11(debug@4.4.3): @@ -11767,7 +11054,6 @@ snapshots: fs-minipass@2.1.0: dependencies: minipass: 3.3.6 - optional: true fs-minipass@3.0.3: dependencies: @@ -11783,30 +11069,6 @@ snapshots: function-bind@1.1.2: {} - gauge@3.0.2: - dependencies: - aproba: 2.1.0 - color-support: 1.1.3 - console-control-strings: 1.1.0 - has-unicode: 2.0.1 - object-assign: 4.1.1 - signal-exit: 3.0.7 - string-width: 4.2.3 - strip-ansi: 6.0.1 - wide-align: 1.1.5 - optional: true - - gaxios@6.7.1(encoding@0.1.13): - dependencies: - extend: 3.0.2 - https-proxy-agent: 7.0.6 - is-stream: 2.0.1 - node-fetch: 2.7.0(encoding@0.1.13) - uuid: 9.0.1 - transitivePeerDependencies: - - encoding - - supports-color - gaxios@7.1.4: dependencies: extend: 3.0.2 @@ -11815,15 +11077,6 @@ snapshots: transitivePeerDependencies: - supports-color - gcp-metadata@6.1.1(encoding@0.1.13): - dependencies: - gaxios: 6.7.1(encoding@0.1.13) - google-logging-utils: 0.0.2 - json-bigint: 1.0.0 - transitivePeerDependencies: - - encoding - - supports-color - gcp-metadata@8.1.2: dependencies: gaxios: 7.1.4 @@ -11862,6 +11115,10 @@ snapshots: dependencies: pump: 3.0.4 + get-tsconfig@4.14.0: + dependencies: + resolve-pkg-maps: 1.0.0 + get-uri@6.0.5: dependencies: basic-ftp: 5.2.0 @@ -11882,6 +11139,7 @@ snapshots: dependencies: image-q: 4.0.0 omggif: 1.0.10 + optional: true glob-parent@5.1.2: dependencies: @@ -11944,20 +11202,6 @@ snapshots: transitivePeerDependencies: - supports-color - google-auth-library@9.15.1(encoding@0.1.13): - dependencies: - base64-js: 1.5.1 - ecdsa-sig-formatter: 1.0.11 - gaxios: 6.7.1(encoding@0.1.13) - gcp-metadata: 6.1.1(encoding@0.1.13) - gtoken: 7.1.0(encoding@0.1.13) - jws: 4.0.1 - transitivePeerDependencies: - - encoding - - supports-color - - google-logging-utils@0.0.2: {} - google-logging-utils@1.1.3: {} gopd@1.2.0: {} @@ -11988,14 +11232,6 @@ snapshots: - encoding - supports-color - gtoken@7.1.0(encoding@0.1.13): - dependencies: - gaxios: 6.7.1(encoding@0.1.13) - jws: 4.0.1 - transitivePeerDependencies: - - encoding - - supports-color - has-flag@4.0.0: {} has-property-descriptors@1.0.2: @@ -12009,9 +11245,6 @@ snapshots: dependencies: has-symbols: 1.1.0 - has-unicode@2.0.1: - optional: true - hashery@1.5.1: dependencies: hookified: 1.15.1 @@ -12061,20 +11294,6 @@ snapshots: dependencies: '@types/hast': 3.0.4 - hast-util-to-html@9.0.5: - dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 - ccount: 2.0.1 - comma-separated-tokens: 2.0.3 - hast-util-whitespace: 3.0.0 - html-void-elements: 3.0.0 - mdast-util-to-hast: 13.2.1 - property-information: 7.1.0 - space-separated-tokens: 2.0.2 - stringify-entities: 4.0.4 - zwitch: 2.0.4 - hast-util-to-jsx-runtime@2.3.6: dependencies: '@types/estree': 1.0.8 @@ -12142,23 +11361,12 @@ snapshots: transitivePeerDependencies: - '@noble/hashes' - html-escaper@3.0.3: {} - html-parse-stringify@3.0.1: dependencies: void-elements: 3.1.0 html-url-attributes@3.0.1: {} - html-void-elements@3.0.0: {} - - htmlparser2@10.1.0: - dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - domutils: 3.2.2 - entities: 7.0.1 - http-cache-semantics@4.2.0: {} http-errors@2.0.1: @@ -12188,6 +11396,8 @@ snapshots: quick-lru: 5.1.1 resolve-alpn: 1.2.1 + http_ece@1.2.0: {} + https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.4 @@ -12195,6 +11405,13 @@ snapshots: transitivePeerDependencies: - supports-color + https-proxy-agent@9.0.0: + dependencies: + agent-base: 9.0.0 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + i18next@25.10.9(typescript@5.9.3): dependencies: '@babel/runtime': 7.29.2 @@ -12224,6 +11441,7 @@ snapshots: image-q@4.0.0: dependencies: '@types/node': 16.9.1 + optional: true image-size@2.0.2: {} @@ -12265,8 +11483,6 @@ snapshots: is-decimal@2.0.1: {} - is-electron@2.2.2: {} - is-extglob@2.1.1: {} is-fullwidth-code-point@3.0.0: {} @@ -12291,8 +11507,6 @@ snapshots: is-promise@4.0.0: {} - is-stream@2.0.1: {} - is-unicode-supported@0.1.0: {} is-unicode-supported@2.1.0: {} @@ -12348,6 +11562,7 @@ snapshots: '@jimp/utils': 1.6.1 transitivePeerDependencies: - supports-color + optional: true jiti@1.21.7: {} @@ -12355,7 +11570,8 @@ snapshots: jose@6.2.2: {} - jpeg-js@0.4.4: {} + jpeg-js@0.4.4: + optional: true js-tokens@4.0.0: {} @@ -12396,8 +11612,6 @@ snapshots: dependencies: bignumber.js: 9.3.1 - json-bignum@0.0.3: {} - json-buffer@3.0.1: {} json-schema-to-ts@3.1.1: @@ -12428,19 +11642,6 @@ snapshots: optionalDependencies: graceful-fs: 4.2.11 - jsonwebtoken@9.0.3: - dependencies: - jws: 4.0.1 - lodash.includes: 4.3.0 - lodash.isboolean: 3.0.3 - lodash.isinteger: 4.0.4 - lodash.isnumber: 3.0.3 - lodash.isplainobject: 4.0.6 - lodash.isstring: 4.0.1 - lodash.once: 4.1.1 - ms: 2.1.3 - semver: 7.7.4 - jszip@3.10.1: dependencies: lie: 3.3.0 @@ -12459,8 +11660,6 @@ snapshots: jwa: 2.0.1 safe-buffer: 5.2.1 - jwt-decode@4.0.0: {} - katex@0.16.45: dependencies: commander: 8.3.0 @@ -12491,46 +11690,26 @@ snapshots: lines-and-columns@1.2.4: {} - linkedom@0.18.12: - dependencies: - css-select: 5.2.2 - cssom: 0.5.0 - html-escaper: 3.0.3 - htmlparser2: 10.1.0 - uhyphen: 0.2.0 - linkify-it@5.0.0: dependencies: uc.micro: 2.1.0 + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + locate-path@6.0.0: dependencies: p-locate: 5.0.0 - lodash.camelcase@4.3.0: {} - lodash.escaperegexp@4.1.2: {} lodash.identity@3.0.0: {} - lodash.includes@4.3.0: {} - - lodash.isboolean@3.0.3: {} - lodash.isequal@4.5.0: {} - lodash.isinteger@4.0.4: {} - - lodash.isnumber@3.0.3: {} - - lodash.isplainobject@4.0.6: {} - - lodash.isstring@4.0.1: {} - lodash.merge@4.6.2: {} - lodash.once@4.1.1: {} - lodash.pickby@4.6.0: {} lodash@4.17.23: {} @@ -12545,8 +11724,6 @@ snapshots: is-unicode-supported: 2.1.0 yoctocolors: 2.1.2 - loglevel@1.9.2: {} - long@4.0.0: {} long@5.3.2: {} @@ -12575,8 +11752,6 @@ snapshots: lru-cache@7.18.3: {} - lru_map@0.4.1: {} - lucide-react@0.563.0(react@19.2.4): dependencies: react: 19.2.4 @@ -12587,11 +11762,6 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 - make-dir@3.1.0: - dependencies: - semver: 6.3.1 - optional: true - make-fetch-happen@14.0.3: dependencies: '@npmcli/agent': 3.0.0 @@ -12641,30 +11811,6 @@ snapshots: math-intrinsics@1.1.0: {} - matrix-events-sdk@0.0.1: {} - - matrix-js-sdk@41.3.0: - dependencies: - '@babel/runtime': 7.29.2 - '@matrix-org/matrix-sdk-crypto-wasm': 18.0.0 - another-json: 0.2.0 - bs58: 6.0.0 - content-type: 1.0.5 - jwt-decode: 4.0.0 - loglevel: 1.9.2 - matrix-events-sdk: 0.0.1 - matrix-widget-api: 1.17.0 - oidc-client-ts: 3.5.0 - p-retry: 7.1.1 - sdp-transform: 3.0.0 - unhomoglyph: 1.0.6 - uuid: 13.0.0 - - matrix-widget-api@1.17.0: - dependencies: - '@types/events': 3.0.3 - events: 3.3.0 - mdast-util-find-and-replace@3.0.2: dependencies: '@types/mdast': 4.0.4 @@ -13060,7 +12206,8 @@ snapshots: mime@2.6.0: {} - mime@3.0.0: {} + mime@3.0.0: + optional: true mime@4.1.0: {} @@ -13074,6 +12221,8 @@ snapshots: min-indent@1.0.1: {} + minimalistic-assert@1.0.1: {} + minimatch@10.2.4: dependencies: brace-expansion: 5.0.5 @@ -13120,8 +12269,7 @@ snapshots: dependencies: yallist: 4.0.0 - minipass@5.0.0: - optional: true + minipass@5.0.0: {} minipass@7.1.3: {} @@ -13129,7 +12277,6 @@ snapshots: dependencies: minipass: 3.3.6 yallist: 4.0.0 - optional: true minizlib@3.1.0: dependencies: @@ -13139,8 +12286,7 @@ snapshots: dependencies: minimist: 1.2.8 - mkdirp@1.0.4: - optional: true + mkdirp@1.0.4: {} motion-dom@12.38.0: dependencies: @@ -13190,28 +12336,12 @@ snapshots: node-addon-api@1.7.2: optional: true - node-addon-api@8.7.0: - optional: true - node-api-version@0.2.1: dependencies: semver: 7.7.4 node-domexception@1.0.0: {} - node-downloader-helper@2.1.11: - optional: true - - node-edge-tts@1.2.10: - dependencies: - https-proxy-agent: 7.0.6 - ws: 8.20.0 - yargs: 17.7.2 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - node-fetch@2.7.0(encoding@0.1.13): dependencies: whatwg-url: 5.0.0 @@ -13241,16 +12371,8 @@ snapshots: node-machine-id@1.1.12: {} - node-readable-to-web-readable-stream@0.4.2: - optional: true - node-releases@2.0.36: {} - nopt@5.0.0: - dependencies: - abbrev: 1.1.1 - optional: true - nopt@8.1.0: dependencies: abbrev: 3.0.1 @@ -13259,32 +12381,6 @@ snapshots: normalize-url@6.1.0: {} - nostr-tools@2.23.3(typescript@5.9.3): - dependencies: - '@noble/ciphers': 2.1.1 - '@noble/curves': 2.0.1 - '@noble/hashes': 2.0.1 - '@scure/base': 2.0.0 - '@scure/bip32': 2.0.1 - '@scure/bip39': 2.0.1 - nostr-wasm: 0.1.0 - optionalDependencies: - typescript: 5.9.3 - - nostr-wasm@0.1.0: {} - - npmlog@5.0.1: - dependencies: - are-we-there-yet: 2.0.0 - console-control-strings: 1.1.0 - gauge: 3.0.2 - set-blocking: 2.0.0 - optional: true - - nth-check@2.1.1: - dependencies: - boolbase: 1.0.0 - object-assign@4.1.1: {} object-hash@3.0.0: {} @@ -13296,11 +12392,8 @@ snapshots: obug@2.1.1: {} - oidc-client-ts@3.5.0: - dependencies: - jwt-decode: 4.0.0 - - omggif@1.0.10: {} + omggif@1.0.10: + optional: true on-exit-leak-free@2.1.2: {} @@ -13320,14 +12413,6 @@ snapshots: dependencies: mimic-function: 5.0.1 - oniguruma-parser@0.12.1: {} - - oniguruma-to-es@4.3.5: - dependencies: - oniguruma-parser: 0.12.1 - regex: 6.1.0 - regex-recursion: 6.0.2 - openai@6.26.0(ws@8.20.0)(zod@4.3.6): optionalDependencies: ws: 8.20.0 @@ -13338,104 +12423,48 @@ snapshots: ws: 8.20.0 zod: 4.3.6 - openclaw@2026.4.15(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.1)(@napi-rs/canvas@0.1.97)(@types/express@5.0.6)(apache-arrow@18.1.0)(encoding@0.1.13)(hono@4.12.12)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3): + openclaw@2026.4.26: dependencies: - '@agentclientprotocol/sdk': 0.18.2(zod@4.3.6) - '@anthropic-ai/vertex-sdk': 0.15.0(encoding@0.1.13)(zod@4.3.6) - '@aws-sdk/client-bedrock': 3.1028.0 - '@aws-sdk/client-bedrock-runtime': 3.1028.0 - '@aws-sdk/credential-provider-node': 3.972.30 - '@aws/bedrock-token-generator': 1.1.0 - '@buape/carbon': 0.15.0(@discordjs/opus@0.10.0(encoding@0.1.13))(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.1)(hono@4.12.12)(opusscript@0.1.1) + '@agentclientprotocol/sdk': 0.20.0(zod@4.3.6) '@clack/prompts': 1.2.0 - '@google/genai': 1.49.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6)) - '@grammyjs/runner': 2.0.3(grammy@1.42.0(encoding@0.1.13)) - '@grammyjs/transformer-throttler': 1.2.1(grammy@1.42.0(encoding@0.1.13)) - '@homebridge/ciao': 1.3.6 - '@lancedb/lancedb': 0.27.2(apache-arrow@18.1.0) - '@larksuiteoapi/node-sdk': 1.60.0 '@lydell/node-pty': 1.2.0-beta.12 - '@mariozechner/pi-agent-core': 0.66.1(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) - '@mariozechner/pi-ai': 0.66.1(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) - '@mariozechner/pi-coding-agent': 0.66.1(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) - '@mariozechner/pi-tui': 0.66.1 - '@matrix-org/matrix-sdk-crypto-wasm': 18.0.0 + '@mariozechner/pi-agent-core': 0.70.2(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) + '@mariozechner/pi-ai': 0.70.2(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) + '@mariozechner/pi-coding-agent': 0.70.2(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) + '@mariozechner/pi-tui': 0.70.2 '@modelcontextprotocol/sdk': 1.29.0(zod@4.3.6) - '@mozilla/readability': 0.6.0 - '@napi-rs/canvas': 0.1.97 - '@pierre/diffs': 1.1.13(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@sinclair/typebox': 0.34.49 - '@slack/bolt': 4.7.0(@types/express@5.0.6) - '@slack/web-api': 7.15.0 - '@whiskeysockets/baileys': 7.0.0-rc.9(jimp@1.6.1)(sharp@0.34.5) + '@vincentkoc/qrcode-tui': 0.2.1 ajv: 8.18.0 chalk: 5.6.2 chokidar: 5.0.0 - cli-highlight: 2.1.11 commander: 14.0.3 croner: 10.0.1 - discord-api-types: 0.38.45 - dotenv: 17.4.1 - express: 5.2.1 + dotenv: 17.4.2 file-type: 22.0.1 - gaxios: 7.1.4 - google-auth-library: 10.6.2 - grammy: 1.42.0(encoding@0.1.13) - https-proxy-agent: 7.0.6 + https-proxy-agent: 9.0.0 ipaddr.js: 2.3.0 - jimp: 1.6.1 jiti: 2.6.1 json5: 2.2.3 jszip: 3.10.1 - linkedom: 0.18.12 - long: 5.3.2 markdown-it: 14.1.1 - matrix-js-sdk: 41.3.0 - mpg123-decoder: 1.0.3 - node-edge-tts: 1.2.10 - nostr-tools: 2.23.3(typescript@5.9.3) openai: 6.34.0(ws@8.20.0)(zod@4.3.6) - opusscript: 0.1.1 osc-progress: 0.3.0 - pdfjs-dist: 5.6.205 - playwright-core: 1.59.1 proxy-agent: 8.0.1 - qrcode-terminal: 0.12.0 - sharp: 0.34.5 - silk-wasm: 3.7.1 + semver: 7.7.4 sqlite-vec: 0.1.9 tar: 7.5.13 tslog: 4.10.2 - undici: 8.0.2 - uuid: 13.0.0 + typebox: 1.1.33 + undici: 8.1.0 + web-push: 3.6.7 ws: 8.20.0 yaml: 2.8.3 zod: 4.3.6 - optionalDependencies: - '@discordjs/opus': 0.10.0(encoding@0.1.13) - '@matrix-org/matrix-sdk-crypto-nodejs': 0.4.0 - fake-indexeddb: 6.2.5 - music-metadata: 11.12.3 transitivePeerDependencies: - '@cfworker/json-schema' - - '@emnapi/core' - - '@emnapi/runtime' - - '@types/express' - - apache-arrow - - audio-decode - aws-crt - bufferutil - - canvas - - debug - - encoding - - ffmpeg-static - - hono - - link-preview-js - - node-opus - - react - - react-dom - supports-color - - typescript - utf-8-validate option@0.2.4: {} @@ -13478,23 +12507,24 @@ snapshots: p-cancelable@2.1.1: {} - p-finally@1.0.0: {} + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 p-limit@3.1.0: dependencies: yocto-queue: 0.1.0 + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + p-locate@5.0.0: dependencies: p-limit: 3.1.0 p-map@7.0.4: {} - p-queue@6.6.2: - dependencies: - eventemitter3: 4.0.7 - p-timeout: 3.2.0 - p-queue@9.1.0: dependencies: eventemitter3: 5.0.4 @@ -13509,12 +12539,10 @@ snapshots: dependencies: is-network-error: 1.3.1 - p-timeout@3.2.0: - dependencies: - p-finally: 1.0.0 - p-timeout@7.0.1: {} + p-try@2.2.0: {} + pac-proxy-agent@7.2.0: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 @@ -13534,7 +12562,7 @@ snapshots: debug: 4.4.3 get-uri: 8.0.0 http-proxy-agent: 9.0.0 - https-proxy-agent: 7.0.6 + https-proxy-agent: 9.0.0 pac-resolver: 9.0.1(quickjs-wasi@2.2.0) quickjs-wasi: 2.2.0 socks-proxy-agent: 10.0.0 @@ -13556,14 +12584,17 @@ snapshots: pako@1.0.11: {} - parse-bmfont-ascii@1.0.6: {} + parse-bmfont-ascii@1.0.6: + optional: true - parse-bmfont-binary@1.0.6: {} + parse-bmfont-binary@1.0.6: + optional: true parse-bmfont-xml@1.1.6: dependencies: xml-parse-from-string: 1.0.1 xml2js: 0.5.0 + optional: true parse-entities@4.0.2: dependencies: @@ -13628,11 +12659,6 @@ snapshots: optionalDependencies: '@napi-rs/canvas': 0.1.97 - pdfjs-dist@5.6.205: - optionalDependencies: - '@napi-rs/canvas': 0.1.97 - node-readable-to-web-readable-stream: 0.4.2 - pe-library@0.4.1: {} pend@1.2.0: {} @@ -13670,6 +12696,7 @@ snapshots: pixelmatch@5.3.0: dependencies: pngjs: 6.0.0 + optional: true pkce-challenge@5.0.1: {} @@ -13691,9 +12718,13 @@ snapshots: png2icons@2.0.1: {} - pngjs@6.0.0: {} + pngjs@5.0.0: {} - pngjs@7.0.0: {} + pngjs@6.0.0: + optional: true + + pngjs@7.0.0: + optional: true postcss-import@15.1.0(postcss@8.5.8): dependencies: @@ -13707,12 +12738,13 @@ snapshots: camelcase-css: 2.0.1 postcss: 8.5.8 - postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.8)(yaml@2.8.3): + postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.8)(tsx@4.21.0)(yaml@2.8.3): dependencies: lilconfig: 3.1.3 optionalDependencies: jiti: 1.21.7 postcss: 8.5.8 + tsx: 4.21.0 yaml: 2.8.3 postcss-nested@6.2.0(postcss@8.5.8): @@ -13750,11 +12782,9 @@ snapshots: ansi-styles: 5.2.0 react-is: 17.0.2 - prism-media@1.3.5(@discordjs/opus@0.10.0(encoding@0.1.13))(opusscript@0.1.1): + prism-media@1.3.5(opusscript@0.1.1): optionalDependencies: - '@discordjs/opus': 0.10.0(encoding@0.1.13) opusscript: 0.1.1 - optional: true proc-log@5.0.0: {} @@ -13831,7 +12861,7 @@ snapshots: agent-base: 9.0.0 debug: 4.4.3 http-proxy-agent: 9.0.0 - https-proxy-agent: 7.0.6 + https-proxy-agent: 9.0.0 lru-cache: 7.18.3 pac-proxy-agent: 9.0.1 proxy-from-env: 2.1.0 @@ -13858,6 +12888,12 @@ snapshots: qrcode-terminal@0.12.0: {} + qrcode@1.5.4: + dependencies: + dijkstrajs: 1.0.3 + pngjs: 5.0.0 + yargs: 15.4.1 + qs@6.15.0: dependencies: side-channel: 1.1.0 @@ -13999,18 +13035,6 @@ snapshots: indent-string: 4.0.0 strip-indent: 3.0.0 - reflect-metadata@0.2.2: {} - - regex-recursion@6.0.2: - dependencies: - regex-utilities: 2.3.0 - - regex-utilities@2.3.0: {} - - regex@6.1.0: - dependencies: - regex-utilities: 2.3.0 - rehype-katex@7.0.1: dependencies: '@types/hast': 3.0.4 @@ -14068,12 +13092,16 @@ snapshots: require-from-string@2.0.2: {} + require-main-filename@2.0.0: {} + resedit@1.7.2: dependencies: pe-library: 0.4.1 resolve-alpn@1.2.1: {} + resolve-pkg-maps@1.0.0: {} + resolve@1.22.11: dependencies: is-core-module: 2.16.1 @@ -14104,11 +13132,6 @@ snapshots: dependencies: glob: 7.2.3 - rimraf@3.0.2: - dependencies: - glob: 7.2.3 - optional: true - roarr@2.15.4: dependencies: boolean: 3.2.0 @@ -14184,8 +13207,6 @@ snapshots: scheduler@0.27.0: {} - sdp-transform@3.0.0: {} - semver-compare@1.0.0: optional: true @@ -14225,8 +13246,7 @@ snapshots: transitivePeerDependencies: - supports-color - set-blocking@2.0.0: - optional: true + set-blocking@2.0.0: {} set-cookie-parser@2.7.2: {} @@ -14271,17 +13291,6 @@ snapshots: shebang-regex@3.0.0: {} - shiki@3.23.0: - dependencies: - '@shikijs/core': 3.23.0 - '@shikijs/engine-javascript': 3.23.0 - '@shikijs/engine-oniguruma': 3.23.0 - '@shikijs/langs': 3.23.0 - '@shikijs/themes': 3.23.0 - '@shikijs/types': 3.23.0 - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 - side-channel-list@1.0.0: dependencies: es-errors: 1.3.0 @@ -14322,12 +13331,22 @@ snapshots: dependencies: semver: 7.7.4 - simple-xml-to-json@1.2.7: {} + simple-xml-to-json@1.2.7: + optional: true simple-yenc@1.0.4: {} sisteransi@1.0.5: {} + skillflag@0.1.4: + dependencies: + '@clack/prompts': 1.2.0 + tar-stream: 3.1.8 + transitivePeerDependencies: + - bare-abort-controller + - bare-buffer + - react-native-b4a + slice-ansi@3.0.0: dependencies: ansi-styles: 4.3.0 @@ -14424,6 +13443,15 @@ snapshots: stdin-discarder@0.3.1: {} + streamx@2.25.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 @@ -14510,20 +13538,15 @@ snapshots: symbol-tree@3.2.4: {} - table-layout@4.1.1: - dependencies: - array-back: 6.2.3 - wordwrapjs: 5.1.1 - tagged-tag@1.0.0: {} tailwind-merge@3.5.0: {} - tailwindcss-animate@1.0.7(tailwindcss@3.4.19(yaml@2.8.3)): + tailwindcss-animate@1.0.7(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.8.3)): dependencies: - tailwindcss: 3.4.19(yaml@2.8.3) + tailwindcss: 3.4.19(tsx@4.21.0)(yaml@2.8.3) - tailwindcss@3.4.19(yaml@2.8.3): + tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.8.3): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -14542,7 +13565,7 @@ snapshots: postcss: 8.5.8 postcss-import: 15.1.0(postcss@8.5.8) postcss-js: 4.1.0(postcss@8.5.8) - postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.8)(yaml@2.8.3) + postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.8)(tsx@4.21.0)(yaml@2.8.3) postcss-nested: 6.2.0(postcss@8.5.8) postcss-selector-parser: 6.1.2 resolve: 1.22.11 @@ -14551,6 +13574,17 @@ snapshots: - tsx - yaml + tar-stream@3.1.8: + dependencies: + b4a: 1.8.0 + bare-fs: 4.7.1 + fast-fifo: 1.3.2 + streamx: 2.25.0 + transitivePeerDependencies: + - bare-abort-controller + - bare-buffer + - react-native-b4a + tar@6.2.1: dependencies: chownr: 2.0.0 @@ -14559,7 +13593,6 @@ snapshots: minizlib: 2.1.2 mkdirp: 1.0.4 yallist: 4.0.0 - optional: true tar@7.5.13: dependencies: @@ -14569,6 +13602,13 @@ snapshots: minizlib: 3.1.0 yallist: 5.0.0 + teex@1.0.1: + dependencies: + streamx: 2.25.0 + transitivePeerDependencies: + - bare-abort-controller + - react-native-b4a + temp-file@3.4.0: dependencies: async-exit-hook: 2.0.1 @@ -14579,6 +13619,12 @@ snapshots: mkdirp: 0.5.6 rimraf: 2.6.3 + text-decoder@1.2.7: + dependencies: + b4a: 1.8.0 + transitivePeerDependencies: + - react-native-b4a + thenify-all@1.6.0: dependencies: thenify: 3.3.1 @@ -14599,7 +13645,8 @@ snapshots: tinybench@2.9.0: {} - tinycolor2@1.6.0: {} + tinycolor2@1.6.0: + optional: true tinyexec@1.0.4: {} @@ -14664,7 +13711,12 @@ snapshots: tslog@4.10.2: {} - tsscmp@1.0.6: {} + tsx@4.21.0: + dependencies: + esbuild: 0.27.4 + get-tsconfig: 4.14.0 + optionalDependencies: + fsevents: 2.3.3 type-check@0.4.0: dependencies: @@ -14683,22 +13735,16 @@ snapshots: media-typer: 1.1.0 mime-types: 3.0.2 + typebox@1.1.33: {} + typescript@5.9.3: {} - typical@4.0.0: {} - - typical@7.3.0: {} - uc.micro@2.1.0: {} - uhyphen@0.2.0: {} - uint8array-extras@1.5.0: {} underscore@1.13.8: {} - undici-types@6.21.0: {} - undici-types@7.16.0: {} undici-types@7.18.2: {} @@ -14707,9 +13753,7 @@ snapshots: undici@7.24.6: {} - undici@8.0.2: {} - - unhomoglyph@1.0.6: {} + undici@8.1.0: {} unified@11.0.5: dependencies: @@ -14806,12 +13850,11 @@ snapshots: utif2@4.1.0: dependencies: pako: 1.0.11 + optional: true util-deprecate@1.0.2: {} - uuid@13.0.0: {} - - uuid@9.0.1: {} + uuid@14.0.0: {} vary@1.1.2: {} @@ -14843,7 +13886,7 @@ snapshots: optionalDependencies: vite-plugin-electron-renderer: 0.14.6 - vite@7.3.1(@types/node@25.5.0)(jiti@1.21.7)(yaml@2.8.3): + vite@7.3.1(@types/node@25.5.0)(jiti@1.21.7)(tsx@4.21.0)(yaml@2.8.3): dependencies: esbuild: 0.27.4 fdir: 6.5.0(picomatch@4.0.4) @@ -14855,12 +13898,13 @@ snapshots: '@types/node': 25.5.0 fsevents: 2.3.3 jiti: 1.21.7 + tsx: 4.21.0 yaml: 2.8.3 - vitest@4.1.1(@types/node@25.5.0)(jsdom@28.1.0(@noble/hashes@2.0.1))(vite@7.3.1(@types/node@25.5.0)(jiti@1.21.7)(yaml@2.8.3)): + vitest@4.1.1(@types/node@25.5.0)(jsdom@28.1.0(@noble/hashes@2.0.1))(vite@7.3.1(@types/node@25.5.0)(jiti@1.21.7)(tsx@4.21.0)(yaml@2.8.3)): dependencies: '@vitest/expect': 4.1.1 - '@vitest/mocker': 4.1.1(vite@7.3.1(@types/node@25.5.0)(jiti@1.21.7)(yaml@2.8.3)) + '@vitest/mocker': 4.1.1(vite@7.3.1(@types/node@25.5.0)(jiti@1.21.7)(tsx@4.21.0)(yaml@2.8.3)) '@vitest/pretty-format': 4.1.1 '@vitest/runner': 4.1.1 '@vitest/snapshot': 4.1.1 @@ -14877,7 +13921,7 @@ snapshots: tinyexec: 1.0.4 tinyglobby: 0.2.15 tinyrainbow: 3.1.0 - vite: 7.3.1(@types/node@25.5.0)(jiti@1.21.7)(yaml@2.8.3) + vite: 7.3.1(@types/node@25.5.0)(jiti@1.21.7)(tsx@4.21.0)(yaml@2.8.3) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 25.5.0 @@ -14897,6 +13941,16 @@ snapshots: web-namespaces@2.0.1: {} + web-push@3.6.7: + dependencies: + asn1.js: 5.4.1 + http_ece: 1.2.0 + https-proxy-agent: 7.0.6 + jws: 4.0.1 + minimist: 1.2.8 + transitivePeerDependencies: + - supports-color + web-streams-polyfill@3.3.3: {} webidl-conversions@3.0.1: {} @@ -14920,6 +13974,8 @@ snapshots: when-exit@2.1.5: {} + which-module@2.0.1: {} + which@2.0.2: dependencies: isexe: 2.0.0 @@ -14933,16 +13989,15 @@ snapshots: siginfo: 2.0.0 stackback: 0.0.2 - wide-align@1.1.5: - dependencies: - string-width: 4.2.3 - optional: true - win-guid@0.2.1: {} word-wrap@1.2.5: {} - wordwrapjs@5.1.1: {} + wrap-ansi@6.2.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 wrap-ansi@7.0.0: dependencies: @@ -14962,21 +14017,26 @@ snapshots: xml-name-validator@5.0.0: {} - xml-parse-from-string@1.0.1: {} + xml-parse-from-string@1.0.1: + optional: true xml2js@0.5.0: dependencies: sax: 1.6.0 xmlbuilder: 11.0.1 + optional: true xmlbuilder@10.1.1: {} - xmlbuilder@11.0.1: {} + xmlbuilder@11.0.1: + optional: true xmlbuilder@15.1.1: {} xmlchars@2.2.0: {} + y18n@4.0.3: {} + y18n@5.0.8: {} yallist@3.1.1: {} @@ -14987,10 +14047,29 @@ snapshots: yaml@2.8.3: {} + yargs-parser@18.1.3: + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + yargs-parser@20.2.9: {} yargs-parser@21.1.1: {} + yargs@15.4.1: + dependencies: + cliui: 6.0.0 + decamelize: 1.2.0 + find-up: 4.1.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 4.2.3 + which-module: 2.0.1 + y18n: 4.0.3 + yargs-parser: 18.1.3 + yargs@16.2.0: dependencies: cliui: 7.0.4 @@ -15028,7 +14107,8 @@ snapshots: dependencies: zod: 4.3.6 - zod@3.25.76: {} + zod@3.25.76: + optional: true zod@4.3.6: {} diff --git a/resources/cli/posix/openclaw b/resources/cli/posix/openclaw index 13c9d1c..dd2bdfa 100755 --- a/resources/cli/posix/openclaw +++ b/resources/cli/posix/openclaw @@ -16,15 +16,30 @@ if [ "$(uname)" = "Darwin" ]; then # SCRIPT_DIR = .../Contents/Resources/cli CONTENTS_DIR="$(dirname "$(dirname "$SCRIPT_DIR")")" ELECTRON="$CONTENTS_DIR/MacOS/ClawX" - CLI="$CONTENTS_DIR/Resources/openclaw/openclaw.mjs" + RESOURCES_DIR="$CONTENTS_DIR/Resources" else # Linux: /opt/ClawX/resources/cli/openclaw # SCRIPT_DIR = .../resources/cli INSTALL_DIR="$(dirname "$(dirname "$SCRIPT_DIR")")" ELECTRON="$INSTALL_DIR/clawx" - CLI="$INSTALL_DIR/resources/openclaw/openclaw.mjs" + RESOURCES_DIR="$INSTALL_DIR/resources" fi +OPENCLAW_RUNTIME_ROOT="$RESOURCES_DIR/openclaw-runtime" +OPENCLAW_DIR="" +for dir in "$OPENCLAW_RUNTIME_ROOT"/openclaw-*; do + if [ -d "$dir" ]; then + OPENCLAW_DIR="$dir" + break + fi +done +if [ -z "$OPENCLAW_DIR" ]; then + OPENCLAW_DIR="$RESOURCES_DIR/openclaw" +else + export OPENCLAW_PLUGIN_STAGE_DIR="$OPENCLAW_RUNTIME_ROOT" +fi +CLI="$OPENCLAW_DIR/openclaw.mjs" + if [ ! -f "$ELECTRON" ]; then echo "Error: ClawX executable not found at $ELECTRON" >&2 echo "Please reinstall ClawX or remove this script: $0" >&2 diff --git a/resources/cli/win32/openclaw b/resources/cli/win32/openclaw index ec50f20..684f8a4 100644 --- a/resources/cli/win32/openclaw +++ b/resources/cli/win32/openclaw @@ -15,7 +15,20 @@ esac export OPENCLAW_EMBEDDED_IN="ClawX" NODE_EXE="$INSTALL_DIR/resources/bin/node.exe" -OPENCLAW_ENTRY="$INSTALL_DIR/resources/openclaw/openclaw.mjs" +OPENCLAW_RUNTIME_ROOT="$INSTALL_DIR/resources/openclaw-runtime" +OPENCLAW_DIR="" +for dir in "$OPENCLAW_RUNTIME_ROOT"/openclaw-*; do + if [ -d "$dir" ]; then + OPENCLAW_DIR="$dir" + break + fi +done +if [ -z "$OPENCLAW_DIR" ]; then + OPENCLAW_DIR="$INSTALL_DIR/resources/openclaw" +else + export OPENCLAW_PLUGIN_STAGE_DIR="$OPENCLAW_RUNTIME_ROOT" +fi +OPENCLAW_ENTRY="$OPENCLAW_DIR/openclaw.mjs" if [ -f "$NODE_EXE" ]; then if "$NODE_EXE" -e 'const [maj,min]=process.versions.node.split(".").map(Number);process.exit((maj>22||maj===22&&min>=16)?0:1)' >/dev/null 2>&1; then diff --git a/resources/cli/win32/openclaw.cmd b/resources/cli/win32/openclaw.cmd index d90186a..0bc650b 100644 --- a/resources/cli/win32/openclaw.cmd +++ b/resources/cli/win32/openclaw.cmd @@ -17,7 +17,12 @@ chcp 65001 >nul 2>&1 set OPENCLAW_EMBEDDED_IN=ClawX set "NODE_EXE=%~dp0..\bin\node.exe" -set "OPENCLAW_ENTRY=%~dp0..\openclaw\openclaw.mjs" +set "OPENCLAW_RUNTIME_ROOT=%~dp0..\openclaw-runtime" +set "OPENCLAW_DIR=" +for /d %%d in ("%OPENCLAW_RUNTIME_ROOT%\openclaw-*") do if not defined OPENCLAW_DIR set "OPENCLAW_DIR=%%~fd" +if not defined OPENCLAW_DIR set "OPENCLAW_DIR=%~dp0..\openclaw" +set "OPENCLAW_ENTRY=%OPENCLAW_DIR%\openclaw.mjs" +if exist "%OPENCLAW_RUNTIME_ROOT%" set "OPENCLAW_PLUGIN_STAGE_DIR=%OPENCLAW_RUNTIME_ROOT%" set "_USE_BUNDLED_NODE=0" if exist "%NODE_EXE%" ( diff --git a/scripts/after-pack.cjs b/scripts/after-pack.cjs index e3184e5..3704858 100644 --- a/scripts/after-pack.cjs +++ b/scripts/after-pack.cjs @@ -19,9 +19,13 @@ * @mariozechner/clipboard). */ -const { cpSync, existsSync, readdirSync, rmSync, statSync, mkdirSync, realpathSync } = require('fs'); +const { createHash } = require('crypto'); +const { cpSync, existsSync, readdirSync, rmSync, statSync, mkdirSync, realpathSync, readFileSync, renameSync, writeFileSync } = require('fs'); const { join, dirname, basename, relative } = require('path'); +const RUNTIME_DEPS_MANIFEST = 'clawx-runtime-deps.json'; +const OPENCLAW_RUNTIME_READY_MARKER = '.clawx-runtime-ready.json'; + // On Windows, paths in pnpm's virtual store can exceed the default MAX_PATH // limit (260 chars). Node.js 18.17+ respects the system LongPathsEnabled // registry key, but as a safety net we normalize paths to use the \\?\ prefix @@ -459,10 +463,19 @@ function bundlePlugin(nodeModulesRoot, npmName, destDir) { let realPluginPath; try { realPluginPath = realpathSync(pkgPath); } catch { realPluginPath = pkgPath; } + function shouldCopyNodePackageEntry(src) { + const base = basename(src); + return base !== '.vscode' && base !== '.idea'; + } + // Copy plugin package itself if (existsSync(normWin(destDir))) rmSync(normWin(destDir), { recursive: true, force: true }); mkdirSync(normWin(destDir), { recursive: true }); - cpSync(normWin(realPluginPath), normWin(destDir), { recursive: true, dereference: true }); + cpSync(normWin(realPluginPath), normWin(destDir), { + recursive: true, + dereference: true, + filter: shouldCopyNodePackageEntry, + }); // Collect transitive deps via pnpm virtual store BFS const collected = new Map(); @@ -515,7 +528,11 @@ function bundlePlugin(nodeModulesRoot, npmName, destDir) { const d = join(destNM, pkgName); try { mkdirSync(normWin(dirname(d)), { recursive: true }); - cpSync(normWin(rp), normWin(d), { recursive: true, dereference: true }); + cpSync(normWin(rp), normWin(d), { + recursive: true, + dereference: true, + filter: shouldCopyNodePackageEntry, + }); count++; } catch (e) { console.warn(`[after-pack] Skipped dep ${pkgName}: ${e.message}`); @@ -525,6 +542,132 @@ function bundlePlugin(nodeModulesRoot, npmName, destDir) { return true; } +function hasPluginRuntimeDeps(pluginDestDir) { + const pluginNM = join(pluginDestDir, 'node_modules'); + if (!existsSync(normWin(pluginNM))) return false; + try { + return readdirSync(normWin(pluginNM)).some((entry) => entry !== '.bin'); + } catch { + return false; + } +} + +function collectPluginRuntimeDeps(pluginDestDir) { + try { + const pkg = JSON.parse(readFileSync(normWin(join(pluginDestDir, 'package.json')), 'utf8')); + return Object.keys({ + ...pkg.dependencies, + ...pkg.optionalDependencies, + }); + } catch { + return []; + } +} + +function missingPluginRuntimeDeps(pluginDestDir) { + return collectPluginRuntimeDeps(pluginDestDir).filter((depName) => { + const depPackageJson = join(pluginDestDir, 'node_modules', ...depName.split('/'), 'package.json'); + return !existsSync(normWin(depPackageJson)); + }); +} + +function preparePackagedPluginMirror(nodeModulesRoot, npmName, pluginId, pluginDestDir, platform, arch) { + const manifestPath = join(pluginDestDir, 'openclaw.plugin.json'); + if (!existsSync(normWin(manifestPath)) || !hasPluginRuntimeDeps(pluginDestDir) || missingPluginRuntimeDeps(pluginDestDir).length > 0) { + console.log(`[after-pack] Bundling plugin ${npmName} -> ${pluginDestDir}`); + const ok = bundlePlugin(nodeModulesRoot, npmName, pluginDestDir); + if (!ok) return; + } else { + console.log(`[after-pack] ✅ Plugin mirror already present: ${pluginDestDir}`); + } + + const pluginNM = join(pluginDestDir, 'node_modules'); + cleanupUnnecessaryFiles(pluginDestDir); + if (existsSync(normWin(pluginNM))) { + cleanupKoffi(pluginNM, platform, arch); + cleanupNativePlatformPackages(pluginNM, platform, arch); + } + patchPluginIds(pluginDestDir, pluginId); +} + +function validateRuntimeDepsManifest(openclawRoot) { + const manifestPath = join(openclawRoot, RUNTIME_DEPS_MANIFEST); + if (!existsSync(normWin(manifestPath))) { + throw new Error(`[after-pack] Missing ${RUNTIME_DEPS_MANIFEST} in packaged OpenClaw resources`); + } + + const manifest = JSON.parse(readFileSync(normWin(manifestPath), 'utf8')); + const plugins = manifest && typeof manifest === 'object' ? manifest.plugins : null; + if (!plugins || typeof plugins !== 'object' || Array.isArray(plugins)) { + throw new Error(`[after-pack] Invalid ${RUNTIME_DEPS_MANIFEST}: missing plugins object`); + } + + const missing = []; + for (const [pluginId, deps] of Object.entries(plugins)) { + if (!Array.isArray(deps)) continue; + for (const dep of deps) { + if (!dep || typeof dep.name !== 'string') continue; + const depPackageJson = join(openclawRoot, 'node_modules', ...dep.name.split('/'), 'package.json'); + if (!existsSync(normWin(depPackageJson))) { + missing.push(`${pluginId}:${dep.name}`); + } + } + } + + if (missing.length > 0) { + throw new Error(`[after-pack] Missing packaged OpenClaw runtime deps: ${missing.join(', ')}`); + } + + console.log(`[after-pack] ✅ Verified ${RUNTIME_DEPS_MANIFEST}.`); +} + +function hashOpenClawRuntime(openclawRoot) { + const packageJsonPath = join(openclawRoot, 'package.json'); + const manifestPath = join(openclawRoot, RUNTIME_DEPS_MANIFEST); + const packageJsonRaw = readFileSync(normWin(packageJsonPath), 'utf8'); + const manifestRaw = existsSync(normWin(manifestPath)) ? readFileSync(normWin(manifestPath), 'utf8') : ''; + const packageJson = JSON.parse(packageJsonRaw); + const version = packageJson.version || 'unknown'; + const manifestHash = createHash('sha256') + .update(packageJsonRaw) + .update('\0') + .update(manifestRaw) + .digest('hex') + .slice(0, 12); + const safeVersion = String(version).replace(/[^a-zA-Z0-9._-]/g, '_'); + return { + key: `openclaw-${safeVersion}-${manifestHash}`, + version, + manifestHash, + }; +} + +function stageOpenClawRuntimeForPackagedApp(resourcesDir, openclawRoot) { + if (!existsSync(normWin(openclawRoot))) { + throw new Error(`[after-pack] Cannot stage OpenClaw runtime; missing ${openclawRoot}`); + } + + const { key, version, manifestHash } = hashOpenClawRuntime(openclawRoot); + const runtimeRoot = join(resourcesDir, 'openclaw-runtime'); + const targetDir = join(runtimeRoot, key); + mkdirSync(normWin(runtimeRoot), { recursive: true }); + rmSync(normWin(targetDir), { recursive: true, force: true }); + renameSync(normWin(openclawRoot), normWin(targetDir)); + writeFileSync( + normWin(join(targetDir, OPENCLAW_RUNTIME_READY_MARKER)), + `${JSON.stringify({ + version, + manifestHash, + source: 'after-pack', + createdAt: new Date().toISOString(), + }, null, 2)}\n`, + 'utf8', + ); + validateRuntimeDepsManifest(targetDir); + console.log(`[after-pack] ✅ Staged OpenClaw runtime at ${targetDir}`); + return targetDir; +} + // ── Main hook ──────────────────────────────────────────────────────────────── exports.default = async function afterPack(context) { @@ -562,6 +705,7 @@ exports.default = async function afterPack(context) { console.log(`[after-pack] Copying ${depCount} openclaw dependencies to ${dest} ...`); cpSync(src, dest, { recursive: true }); console.log('[after-pack] ✅ openclaw node_modules copied.'); + validateRuntimeDepsManifest(openclawRoot); // Patch broken modules whose CJS transpiled output sets module.exports = undefined, // causing TypeError in Node.js 22+ ESM interop. @@ -582,29 +726,22 @@ exports.default = async function afterPack(context) { mkdirSync(pluginsDestRoot, { recursive: true }); for (const { npmName, pluginId } of BUNDLED_PLUGINS) { const pluginDestDir = join(pluginsDestRoot, pluginId); - console.log(`[after-pack] Bundling plugin ${npmName} -> ${pluginDestDir}`); - const ok = bundlePlugin(nodeModulesRoot, npmName, pluginDestDir); - if (ok) { - const pluginNM = join(pluginDestDir, 'node_modules'); - cleanupUnnecessaryFiles(pluginDestDir); - if (existsSync(pluginNM)) { - cleanupKoffi(pluginNM, platform, arch); - cleanupNativePlatformPackages(pluginNM, platform, arch); - } - // Fix hardcoded plugin ID mismatches in compiled JS - patchPluginIds(pluginDestDir, pluginId); + preparePackagedPluginMirror(nodeModulesRoot, npmName, pluginId, pluginDestDir, platform, arch); + const manifestPath = join(pluginDestDir, 'openclaw.plugin.json'); + if (!existsSync(normWin(manifestPath))) { + throw new Error(`[after-pack] Missing packaged plugin mirror: ${pluginId} (${npmName})`); + } + const missingRuntimeDeps = missingPluginRuntimeDeps(pluginDestDir); + if (missingRuntimeDeps.length > 0) { + throw new Error(`[after-pack] Missing packaged plugin runtime deps for ${pluginId}: ${missingRuntimeDeps.join(', ')}`); } } - // 1.2 Copy built-in extension node_modules that electron-builder skipped. - // OpenClaw 3.31+ ships built-in extensions (discord, qqbot, etc.) under - // dist/extensions//node_modules/. These are skipped by extraResources - // because .gitignore contains "node_modules/". - // - // Extension code is loaded via shared chunks in dist/ (e.g. outbound-*.js) - // which resolve modules from the top-level openclaw/node_modules/, NOT from - // the extension's own node_modules/. So we must merge extension deps into - // the top-level node_modules/ as well. + // 1.2 Legacy safety net for build/openclaw bundles that still contain nested + // built-in extension node_modules. The current bundle-openclaw.mjs skips + // these nested directories and merges their packages into the top-level + // OpenClaw node_modules instead, which is where shared dist chunks resolve + // bare imports from at runtime. const buildExtDir = join(__dirname, '..', 'build', 'openclaw', 'dist', 'extensions'); const packExtDir = join(openclawRoot, 'dist', 'extensions'); if (existsSync(buildExtDir)) { @@ -670,6 +807,15 @@ exports.default = async function afterPack(context) { console.log(`[after-pack] ✅ Removed ${nativeRemoved} non-target native platform packages.`); } + // 4.1 Move the finalized OpenClaw tree into the shape OpenClaw already + // recognizes as an external runtime root: + // resources/openclaw-runtime/openclaw-- + // + // At runtime ClawX sets OPENCLAW_PLUGIN_STAGE_DIR to resources/openclaw-runtime + // and launches from the staged openclaw-* directory. This avoids a first-run + // copy while still preventing OpenClaw from running npm install. + stageOpenClawRuntimeForPackagedApp(resourcesDir, openclawRoot); + // 5. Patch lru-cache in app.asar.unpacked // // Production dependencies (electron-updater → semver → lru-cache@6, diff --git a/scripts/bundle-openclaw-plugins.mjs b/scripts/bundle-openclaw-plugins.mjs index 1d34992..67472f1 100644 --- a/scripts/bundle-openclaw-plugins.mjs +++ b/scripts/bundle-openclaw-plugins.mjs @@ -93,13 +93,22 @@ function bundleOnePlugin({ npmName, pluginId }) { echo`📦 Bundling plugin ${npmName} -> ${outputDir}`; + function shouldCopyNodePackageEntry(src) { + const base = path.basename(src); + return base !== '.vscode' && base !== '.idea'; + } + if (fs.existsSync(outputDir)) { fs.rmSync(outputDir, { recursive: true, force: true }); } fs.mkdirSync(outputDir, { recursive: true }); // 1) Copy plugin package itself - fs.cpSync(realPluginPath, outputDir, { recursive: true, dereference: true }); + fs.cpSync(realPluginPath, outputDir, { + recursive: true, + dereference: true, + filter: shouldCopyNodePackageEntry, + }); // 2) Collect transitive deps from pnpm virtual store const collected = new Map(); @@ -160,7 +169,11 @@ function bundleOnePlugin({ npmName, pluginId }) { const dest = path.join(outputNodeModules, pkgName); try { fs.mkdirSync(normWin(path.dirname(dest)), { recursive: true }); - fs.cpSync(normWin(realPath), normWin(dest), { recursive: true, dereference: true }); + fs.cpSync(normWin(realPath), normWin(dest), { + recursive: true, + dereference: true, + filter: shouldCopyNodePackageEntry, + }); copiedCount++; } catch (err) { echo` ⚠️ Skipped ${pkgName}: ${err.message}`; diff --git a/scripts/bundle-openclaw.mjs b/scripts/bundle-openclaw.mjs index bb17683..123da3f 100644 --- a/scripts/bundle-openclaw.mjs +++ b/scripts/bundle-openclaw.mjs @@ -17,10 +17,13 @@ */ import 'zx/globals'; +import { fileURLToPath } from 'node:url'; +const __dirname = path.dirname(fileURLToPath(import.meta.url)); const ROOT = path.resolve(__dirname, '..'); const OUTPUT = path.join(ROOT, 'build', 'openclaw'); const NODE_MODULES = path.join(ROOT, 'node_modules'); +const RUNTIME_DEPS_MANIFEST = 'clawx-runtime-deps.json'; // On Windows, pnpm virtual store paths can exceed MAX_PATH (260 chars). function normWin(p) { @@ -40,6 +43,27 @@ if (!fs.existsSync(openclawLink)) { const openclawReal = fs.realpathSync(openclawLink); echo` openclaw resolved: ${openclawReal}`; +const extensionsDir = path.join(openclawReal, 'dist', 'extensions'); + +function shouldCopyOpenClawPackageEntry(src) { + const rel = path.relative(openclawReal, src); + if (!rel || rel.startsWith('..')) return true; + const parts = rel.split(path.sep); + + if (parts[0] === 'dist' && parts[1] === 'extensions') { + const nodeModulesIndex = parts.indexOf('node_modules'); + if (nodeModulesIndex >= 0) { + return false; + } + } + + for (let i = 0; i < parts.length - 1; i++) { + if (parts[i] === 'node_modules' && parts[i + 1] === '.bin') { + return false; + } + } + return true; +} // 2. Clean and create output directory if (fs.existsSync(OUTPUT)) { @@ -49,7 +73,11 @@ fs.mkdirSync(OUTPUT, { recursive: true }); // 3. Copy openclaw package itself to OUTPUT root echo` Copying openclaw package...`; -fs.cpSync(openclawReal, OUTPUT, { recursive: true, dereference: true }); +fs.cpSync(openclawReal, OUTPUT, { + recursive: true, + dereference: true, + filter: shouldCopyOpenClawPackageEntry, +}); // 4. Recursively collect ALL transitive dependencies via pnpm virtual store BFS // @@ -188,9 +216,109 @@ echo` Skipped ${skippedDevCount} dev-only package references`; // then BFS its transitive deps exactly like we did for openclaw above. const EXTRA_BUNDLED_PACKAGES = [ '@whiskeysockets/baileys', // WhatsApp channel (was a dep of old clawdbot, not openclaw) + '@larksuiteoapi/node-sdk', // Fallback for Feishu plugin setup/doctor module resolution + 'qrcode-terminal', // QR rendering used by WhatsApp/WeChat login helpers ]; +const BUNDLED_EXTENSION_RUNTIME_DEP_PLUGIN_IDS = [ + 'acpx', + 'bonjour', + 'browser', + 'discord', + 'qqbot', + 'telegram', +]; + +function readJsonFile(filePath) { + try { + return JSON.parse(fs.readFileSync(filePath, 'utf8')); + } catch { + return null; + } +} + +function collectBundledExtensionRuntimeDeps(extensionsRoot) { + const depsByPlugin = {}; + for (const pluginId of BUNDLED_EXTENSION_RUNTIME_DEP_PLUGIN_IDS) { + const packageJson = readJsonFile(path.join(extensionsRoot, pluginId, 'package.json')); + if (!packageJson || typeof packageJson !== 'object') { + echo`❌ Bundled extension package.json not found for ${pluginId}`; + process.exit(1); + } + const depsByName = {}; + for (const deps of [packageJson.dependencies, packageJson.optionalDependencies]) { + if (!deps || typeof deps !== 'object' || Array.isArray(deps)) continue; + for (const [name, version] of Object.entries(deps)) { + depsByName[name] = String(version); + } + } + depsByPlugin[pluginId] = Object.entries(depsByName) + .map(([name, version]) => ({ name, version })) + .sort((left, right) => left.name.localeCompare(right.name)); + } + return depsByPlugin; +} + +function flattenRuntimeDeps(depsByPlugin) { + return [...new Set(Object.values(depsByPlugin).flat().map(dep => dep.name))] + .sort((a, b) => a.localeCompare(b)); +} + +function readBundledPackageVersion(nodeModulesDir, pkgName) { + const packageJson = readJsonFile(path.join(nodeModulesDir, ...pkgName.split('/'), 'package.json')); + return typeof packageJson?.version === 'string' ? packageJson.version : null; +} + +function writeRuntimeDepsManifest(outputDir, depsByPlugin) { + const nodeModulesDir = path.join(outputDir, 'node_modules'); + const manifest = { + generatedBy: 'scripts/bundle-openclaw.mjs', + packageRoot: '.', + nodeModulesRoot: 'node_modules', + plugins: {}, + }; + const missing = []; + + for (const [pluginId, deps] of Object.entries(depsByPlugin)) { + manifest.plugins[pluginId] = deps.map((dep) => { + const installedVersion = readBundledPackageVersion(nodeModulesDir, dep.name); + const present = Boolean(installedVersion); + if (!present) { + missing.push(`${pluginId}:${dep.name}@${dep.version}`); + } + return { + name: dep.name, + version: dep.version, + installedVersion, + present, + }; + }); + } + + if (missing.length > 0) { + echo`❌ Missing bundled extension runtime deps: ${missing.join(', ')}`; + process.exit(1); + } + + fs.writeFileSync( + path.join(outputDir, RUNTIME_DEPS_MANIFEST), + `${JSON.stringify(manifest, null, 2)}\n`, + 'utf8', + ); + echo` Wrote ${RUNTIME_DEPS_MANIFEST} for ${Object.keys(manifest.plugins).length} bundled extension(s)`; +} + +const bundledExtensionRuntimeDeps = collectBundledExtensionRuntimeDeps(extensionsDir); +const bundledExtensionRuntimePackages = flattenRuntimeDeps(bundledExtensionRuntimeDeps); +for (const pkgName of bundledExtensionRuntimePackages) { + if (!EXTRA_BUNDLED_PACKAGES.includes(pkgName)) { + EXTRA_BUNDLED_PACKAGES.push(pkgName); + } +} +const preferredBundledPackages = new Set(EXTRA_BUNDLED_PACKAGES); + let extraCount = 0; +const preferredBundledPackageRealPaths = new Set(); for (const pkgName of EXTRA_BUNDLED_PACKAGES) { const pkgLink = path.join(NODE_MODULES, ...pkgName.split('/')); if (!fs.existsSync(pkgLink)) { @@ -200,6 +328,7 @@ for (const pkgName of EXTRA_BUNDLED_PACKAGES) { let pkgReal; try { pkgReal = fs.realpathSync(pkgLink); } catch { continue; } + preferredBundledPackageRealPaths.add(pkgReal); if (!collected.has(pkgReal)) { collected.set(pkgReal, pkgName); @@ -247,8 +376,22 @@ fs.mkdirSync(outputNodeModules, { recursive: true }); const copiedNames = new Set(); // Track package names already copied let copiedCount = 0; let skippedDupes = 0; +const collectedEntries = [...collected].sort(([leftRealPath, leftName], [rightRealPath, rightName]) => { + const leftPreferredRealPath = preferredBundledPackageRealPaths.has(leftRealPath); + const rightPreferredRealPath = preferredBundledPackageRealPaths.has(rightRealPath); + if (leftPreferredRealPath !== rightPreferredRealPath) return leftPreferredRealPath ? -1 : 1; + const leftPreferred = preferredBundledPackages.has(leftName); + const rightPreferred = preferredBundledPackages.has(rightName); + if (leftPreferred === rightPreferred) return 0; + return leftPreferred ? -1 : 1; +}); -for (const [realPath, pkgName] of collected) { +function shouldCopyNodePackageEntry(src) { + const base = path.basename(src); + return base !== '.vscode' && base !== '.idea'; +} + +for (const [realPath, pkgName] of collectedEntries) { if (copiedNames.has(pkgName)) { skippedDupes++; continue; // Keep the first version (closer to openclaw in dep tree) @@ -259,7 +402,11 @@ for (const [realPath, pkgName] of collected) { try { fs.mkdirSync(normWin(path.dirname(dest)), { recursive: true }); - fs.cpSync(normWin(realPath), normWin(dest), { recursive: true, dereference: true }); + fs.cpSync(normWin(realPath), normWin(dest), { + recursive: true, + dereference: true, + filter: shouldCopyNodePackageEntry, + }); copiedCount++; } catch (err) { echo` ⚠️ Skipped ${pkgName}: ${err.message}`; @@ -279,7 +426,6 @@ for (const [realPath, pkgName] of collected) { // Fix: copy extension deps into the top-level node_modules/ so they are // resolvable from shared chunks. Skip-if-exists preserves version priority // (openclaw's own deps take precedence over extension deps). -const extensionsDir = path.join(OUTPUT, 'dist', 'extensions'); let mergedExtCount = 0; if (fs.existsSync(extensionsDir)) { for (const extEntry of fs.readdirSync(extensionsDir, { withFileTypes: true })) { @@ -325,6 +471,8 @@ if (mergedExtCount > 0) { echo` Merged ${mergedExtCount} extension packages into top-level node_modules`; } +writeRuntimeDepsManifest(OUTPUT, bundledExtensionRuntimeDeps); + // 6. Clean up the bundle to reduce package size // // This removes platform-agnostic waste: dev artifacts, docs, source maps, @@ -470,7 +618,7 @@ function cleanupBundle(outputDir) { 'node_modules/koffi/src', 'node_modules/koffi/vendor', 'node_modules/koffi/doc', - 'extensions/feishu', // Removed in favor of official @larksuite/openclaw-lark plugin + 'dist/extensions/feishu', // Removed in favor of official @larksuite/openclaw-lark plugin ]; for (const rel of LARGE_REMOVALS) { if (rmSafe(path.join(outputDir, rel))) removedCount++; @@ -712,12 +860,20 @@ function patchBundledRuntime(outputDir) { for (const patch of replacePatches) { const target = patch.target(); if (!target || !fs.existsSync(target)) { + if (patch.required) { + echo`❌ Required patch failed for ${patch.label}: target file not found`; + process.exit(1); + } echo` ⚠️ Skipped patch for ${patch.label}: target file not found`; continue; } const current = fs.readFileSync(target, 'utf8'); if (!current.includes(patch.search)) { + if (patch.required) { + echo`❌ Required patch failed for ${patch.label}: expected source snippet not found`; + process.exit(1); + } echo` ⚠️ Skipped patch for ${patch.label}: expected source snippet not found`; continue; } diff --git a/tests/unit/channel-config.test.ts b/tests/unit/channel-config.test.ts index b1e9862..8cd60c0 100644 --- a/tests/unit/channel-config.test.ts +++ b/tests/unit/channel-config.test.ts @@ -139,6 +139,81 @@ describe('parseDoctorValidationOutput', () => { }); }); +describe('OpenClaw 4.24 bundled channel config defaults', () => { + beforeEach(async () => { + vi.resetAllMocks(); + vi.resetModules(); + await rm(testHome, { recursive: true, force: true }); + await rm(testUserData, { recursive: true, force: true }); + }); + + it('adds required Telegram access policies when saving token config', async () => { + const { saveChannelConfig } = await import('@electron/utils/channel-config'); + + await saveChannelConfig('telegram', { + botToken: 'telegram-token', + allowedUsers: '12345', + }, 'default'); + + const config = await readOpenClawJson(); + const channels = config.channels as Record; + }>; + + expect(channels.telegram.dmPolicy).toBe('allowlist'); + expect(channels.telegram.groupPolicy).toBe('allowlist'); + expect(channels.telegram.accounts?.default).toMatchObject({ + allowFrom: ['12345'], + dmPolicy: 'allowlist', + groupPolicy: 'allowlist', + }); + }); + + it('uses open Telegram policies for wildcard access', async () => { + const { saveChannelConfig } = await import('@electron/utils/channel-config'); + + await saveChannelConfig('telegram', { + botToken: 'telegram-token', + allowedUsers: '*', + }, 'default'); + + const config = await readOpenClawJson(); + const channels = config.channels as Record; + }>; + + expect(channels.telegram.accounts?.default).toMatchObject({ + dmPolicy: 'open', + groupPolicy: 'open', + }); + }); + + it('adds Discord DM policy alongside required group policy', async () => { + const { saveChannelConfig } = await import('@electron/utils/channel-config'); + + await saveChannelConfig('discord', { + token: 'discord-token', + guildId: 'guild-1', + }, 'default'); + + const config = await readOpenClawJson(); + const channels = config.channels as Record; + }>; + + expect(channels.discord.dmPolicy).toBe('disabled'); + expect(channels.discord.groupPolicy).toBe('allowlist'); + expect(channels.discord.accounts?.default).toMatchObject({ + dmPolicy: 'disabled', + groupPolicy: 'allowlist', + }); + }); +}); + describe('WeCom plugin configuration', () => { beforeEach(async () => { vi.resetAllMocks(); diff --git a/tests/unit/openclaw-auth.test.ts b/tests/unit/openclaw-auth.test.ts index 585551c..1b4b323 100644 --- a/tests/unit/openclaw-auth.test.ts +++ b/tests/unit/openclaw-auth.test.ts @@ -709,6 +709,39 @@ describe('syncProviderConfigToOpenClaw', () => { }); }); +describe('batchSyncConfigFields', () => { + beforeEach(async () => { + vi.resetModules(); + vi.restoreAllMocks(); + await rm(testHome, { recursive: true, force: true }); + await rm(testUserData, { recursive: true, force: true }); + }); + + it('allowlists packaged file origins for the control UI websocket', async () => { + await writeOpenClawJson({ + gateway: { + controlUi: { + allowedOrigins: ['http://localhost:18789', 'file://'], + }, + }, + }); + + const logSpy = vi.spyOn(console, 'log').mockImplementation(() => {}); + const { batchSyncConfigFields } = await import('@electron/utils/openclaw-auth'); + + await batchSyncConfigFields('test-token'); + + const result = await readOpenClawJson(); + const gateway = result.gateway as Record; + const controlUi = gateway.controlUi as Record; + + expect(controlUi.allowedOrigins).toEqual(['http://localhost:18789', 'file://', 'null']); + expect(gateway.auth).toEqual({ mode: 'token', token: 'test-token' }); + + logSpy.mockRestore(); + }); +}); + describe('auth-backed provider discovery', () => { beforeEach(async () => { vi.resetModules(); diff --git a/tests/unit/openclaw-doctor.test.ts b/tests/unit/openclaw-doctor.test.ts index 3e95499..37cfaed 100644 --- a/tests/unit/openclaw-doctor.test.ts +++ b/tests/unit/openclaw-doctor.test.ts @@ -43,6 +43,9 @@ vi.mock('electron', () => ({ vi.mock('@electron/utils/paths', () => ({ getOpenClawDir: () => '/tmp/openclaw', getOpenClawEntryPath: () => '/tmp/openclaw/openclaw-entry.js', + getOpenClawRuntimeDir: () => '/tmp/openclaw-runtime/openclaw-2026.4.26-test', + getOpenClawRuntimeEntryPath: () => '/tmp/openclaw-runtime/openclaw-2026.4.26-test/openclaw-entry.js', + getOpenClawPluginStageDir: () => '/tmp/openclaw-runtime', })); vi.mock('@electron/utils/uv-env', () => ({