diff --git a/.npmrc b/.npmrc index a079e262c..2daca3559 100644 --- a/.npmrc +++ b/.npmrc @@ -1 +1,6 @@ package-import-method=copy +shamefully-hoist=true +strict-peer-dependencies=false + +electron_mirror=https://npmmirror.com/mirrors/electron/ +electron_builder_binaries_mirror=https://npmmirror.com/mirrors/electron-builder-binaries/ diff --git a/electron/api/routes/channels.ts b/electron/api/routes/channels.ts index 168c6d581..d864c5767 100644 --- a/electron/api/routes/channels.ts +++ b/electron/api/routes/channels.ts @@ -75,15 +75,15 @@ async function ensureWeComPluginInstalled(): Promise<{ installed: boolean; warni const candidateSources = app.isPackaged ? [ - join(process.resourcesPath, 'openclaw-plugins', 'wecom'), - join(process.resourcesPath, 'app.asar.unpacked', 'build', 'openclaw-plugins', 'wecom'), - join(process.resourcesPath, 'app.asar.unpacked', 'openclaw-plugins', 'wecom'), - ] + join(process.resourcesPath, 'openclaw-plugins', 'wecom'), + join(process.resourcesPath, 'app.asar.unpacked', 'build', 'openclaw-plugins', 'wecom'), + join(process.resourcesPath, 'app.asar.unpacked', 'openclaw-plugins', 'wecom'), + ] : [ - join(app.getAppPath(), 'build', 'openclaw-plugins', 'wecom'), - join(process.cwd(), 'build', 'openclaw-plugins', 'wecom'), - join(__dirname, '../../../build/openclaw-plugins/wecom'), - ]; + join(app.getAppPath(), 'build', 'openclaw-plugins', 'wecom'), + join(process.cwd(), 'build', 'openclaw-plugins', 'wecom'), + join(__dirname, '../../../build/openclaw-plugins/wecom'), + ]; const sourceDir = candidateSources.find((dir) => existsSync(join(dir, 'openclaw.plugin.json'))); if (!sourceDir) { @@ -106,6 +106,47 @@ async function ensureWeComPluginInstalled(): Promise<{ installed: boolean; warni } } +async function ensureQQBotPluginInstalled(): Promise<{ installed: boolean; warning?: string }> { + const targetDir = join(homedir(), '.openclaw', 'extensions', 'qqbot'); + const targetManifest = join(targetDir, 'openclaw.plugin.json'); + + if (existsSync(targetManifest)) { + return { installed: true }; + } + + const candidateSources = app.isPackaged + ? [ + join(process.resourcesPath, 'openclaw-plugins', 'qqbot'), + join(process.resourcesPath, 'app.asar.unpacked', 'build', 'openclaw-plugins', 'qqbot'), + join(process.resourcesPath, 'app.asar.unpacked', 'openclaw-plugins', 'qqbot'), + ] + : [ + join(app.getAppPath(), 'build', 'openclaw-plugins', 'qqbot'), + join(process.cwd(), 'build', 'openclaw-plugins', 'qqbot'), + join(__dirname, '../../../build/openclaw-plugins/qqbot'), + ]; + + const sourceDir = candidateSources.find((dir) => existsSync(join(dir, 'openclaw.plugin.json'))); + if (!sourceDir) { + return { + installed: false, + warning: `Bundled QQ Bot plugin mirror not found. Checked: ${candidateSources.join(' | ')}`, + }; + } + + try { + mkdirSync(join(homedir(), '.openclaw', 'extensions'), { recursive: true }); + rmSync(targetDir, { recursive: true, force: true }); + cpSync(sourceDir, targetDir, { recursive: true, dereference: true }); + if (!existsSync(targetManifest)) { + return { installed: false, warning: 'Failed to install QQ Bot plugin mirror (manifest missing).' }; + } + return { installed: true }; + } catch { + return { installed: false, warning: 'Failed to install bundled QQ Bot plugin mirror' }; + } +} + export async function handleChannelRoutes( req: IncomingMessage, res: ServerResponse, @@ -175,6 +216,13 @@ export async function handleChannelRoutes( return true; } } + if (body.channelType === 'qqbot') { + const installResult = await ensureQQBotPluginInstalled(); + if (!installResult.installed) { + sendJson(res, 500, { success: false, error: installResult.warning || 'QQ Bot plugin install failed' }); + return true; + } + } await saveChannelConfig(body.channelType, body.config); scheduleGatewayChannelRestart(ctx, `channel:saveConfig:${body.channelType}`); sendJson(res, 200, { success: true }); diff --git a/electron/main/ipc-handlers.ts b/electron/main/ipc-handlers.ts index 13229952c..947833497 100644 --- a/electron/main/ipc-handlers.ts +++ b/electron/main/ipc-handlers.ts @@ -37,6 +37,7 @@ import { getProviderConfig } from '../utils/provider-registry'; import { deviceOAuthManager, OAuthProviderType } from '../utils/device-oauth'; import { browserOAuthManager, type BrowserOAuthProviderType } from '../utils/browser-oauth'; import { applyProxySettings } from './proxy'; +import { proxyAwareFetch } from '../utils/proxy-fetch'; import { getRecentTokenUsageHistory } from '../utils/token-usage'; import { getProviderService } from '../services/providers/provider-service'; import { @@ -50,7 +51,6 @@ import { } from '../services/providers/provider-runtime-sync'; import { validateApiKeyWithProvider } from '../services/providers/provider-validation'; import { appUpdater } from './updater'; -import { PORTS } from '../utils/config'; type AppRequest = { id?: string; @@ -59,12 +59,14 @@ type AppRequest = { payload?: unknown; }; +type AppErrorCode = 'VALIDATION' | 'PERMISSION' | 'TIMEOUT' | 'GATEWAY' | 'INTERNAL' | 'UNSUPPORTED'; + type AppResponse = { id?: string; ok: boolean; data?: unknown; error?: { - code: 'VALIDATION' | 'PERMISSION' | 'TIMEOUT' | 'GATEWAY' | 'INTERNAL' | 'UNSUPPORTED'; + code: AppErrorCode; message: string; details?: unknown; }; @@ -80,6 +82,8 @@ export function registerIpcHandlers( ): void { // Unified request protocol (non-breaking: legacy channels remain available) registerUnifiedRequestHandlers(gatewayManager); + + // Host API proxy handlers registerHostApiProxyHandlers(); // Gateway handlers @@ -137,69 +141,11 @@ export function registerIpcHandlers( registerFileHandlers(); } -type HostApiFetchRequest = { - path: string; - method?: string; - headers?: Record; - body?: unknown; -}; - function registerHostApiProxyHandlers(): void { - ipcMain.handle('hostapi:fetch', async (_, request: HostApiFetchRequest) => { - try { - const path = typeof request?.path === 'string' ? request.path : ''; - if (!path || !path.startsWith('/')) { - throw new Error(`Invalid host API path: ${String(request?.path)}`); - } - - const method = (request.method || 'GET').toUpperCase(); - const headers: Record = { ...(request.headers || {}) }; - let body: BodyInit | undefined; - - if (request.body !== undefined && request.body !== null) { - if (typeof request.body === 'string') { - body = request.body; - } else { - body = JSON.stringify(request.body); - if (!headers['Content-Type'] && !headers['content-type']) { - headers['Content-Type'] = 'application/json'; - } - } - } - - const response = await fetch(`http://127.0.0.1:${PORTS.CLAWX_HOST_API}${path}`, { - method, - headers, - body, - }); - - const data: { status: number; ok: boolean; json?: unknown; text?: string } = { - status: response.status, - ok: response.ok, - }; - - if (response.status !== 204) { - const contentType = response.headers.get('content-type') || ''; - if (contentType.includes('application/json')) { - data.json = await response.json().catch(() => undefined); - } else { - data.text = await response.text().catch(() => ''); - } - } - - return { ok: true, data }; - } catch (error) { - return { - ok: false, - error: { - message: error instanceof Error ? error.message : String(error), - }, - }; - } - }); + // Host API proxy handlers - currently disabled } -function mapAppErrorCode(error: unknown): AppResponse['error']['code'] { +function mapAppErrorCode(error: unknown): AppErrorCode { const msg = error instanceof Error ? error.message.toLowerCase() : String(error).toLowerCase(); if (msg.includes('timeout')) return 'TIMEOUT'; if (msg.includes('permission') || msg.includes('denied') || msg.includes('forbidden')) return 'PERMISSION'; @@ -570,14 +516,20 @@ function registerUnifiedRequestHandlers(gatewayManager: GatewayManager): void { break; } if (request.action === 'create') { + type CronCreateInput = { name: string; message: string; schedule: string; enabled?: boolean }; const payload = request.payload as - | { input?: { name: string; message: string; schedule: string; enabled?: boolean } } - | [{ name: string; message: string; schedule: string; enabled?: boolean }] - | { name: string; message: string; schedule: string; enabled?: boolean } + | { input?: CronCreateInput } + | [CronCreateInput] + | CronCreateInput | undefined; - const input = Array.isArray(payload) - ? payload[0] - : ('input' in (payload ?? {}) ? (payload as { input: { name: string; message: string; schedule: string; enabled?: boolean } }).input : payload); + let input: CronCreateInput | undefined; + if (Array.isArray(payload)) { + input = payload[0]; + } else if (payload && typeof payload === 'object' && 'input' in payload) { + input = payload.input; + } else { + input = payload as CronCreateInput | undefined; + } if (!input) throw new Error('Invalid cron.create payload'); const gatewayInput = { name: input.name, @@ -1393,15 +1345,15 @@ function registerOpenClawHandlers(gatewayManager: GatewayManager): void { const candidateSources = app.isPackaged ? [ - join(process.resourcesPath, 'openclaw-plugins', 'wecom'), - join(process.resourcesPath, 'app.asar.unpacked', 'build', 'openclaw-plugins', 'wecom'), - join(process.resourcesPath, 'app.asar.unpacked', 'openclaw-plugins', 'wecom') - ] + join(process.resourcesPath, 'openclaw-plugins', 'wecom'), + join(process.resourcesPath, 'app.asar.unpacked', 'build', 'openclaw-plugins', 'wecom'), + join(process.resourcesPath, 'app.asar.unpacked', 'openclaw-plugins', 'wecom') + ] : [ - join(app.getAppPath(), 'build', 'openclaw-plugins', 'wecom'), - join(process.cwd(), 'build', 'openclaw-plugins', 'wecom'), - join(__dirname, '../../build/openclaw-plugins/wecom'), - ]; + join(app.getAppPath(), 'build', 'openclaw-plugins', 'wecom'), + join(process.cwd(), 'build', 'openclaw-plugins', 'wecom'), + join(__dirname, '../../build/openclaw-plugins/wecom'), + ]; const sourceDir = candidateSources.find((dir) => existsSync(join(dir, 'openclaw.plugin.json'))); if (!sourceDir) { @@ -1432,6 +1384,56 @@ function registerOpenClawHandlers(gatewayManager: GatewayManager): void { } } + async function ensureQQBotPluginInstalled(): Promise<{ installed: boolean; warning?: string }> { + const targetDir = join(homedir(), '.openclaw', 'extensions', 'qqbot'); + const targetManifest = join(targetDir, 'openclaw.plugin.json'); + + if (existsSync(targetManifest)) { + logger.info('QQ Bot plugin already installed from local mirror'); + return { installed: true }; + } + + const candidateSources = app.isPackaged + ? [ + join(process.resourcesPath, 'openclaw-plugins', 'qqbot'), + join(process.resourcesPath, 'app.asar.unpacked', 'build', 'openclaw-plugins', 'qqbot'), + join(process.resourcesPath, 'app.asar.unpacked', 'openclaw-plugins', 'qqbot') + ] + : [ + join(app.getAppPath(), 'build', 'openclaw-plugins', 'qqbot'), + join(process.cwd(), 'build', 'openclaw-plugins', 'qqbot'), + join(__dirname, '../../build/openclaw-plugins/qqbot'), + ]; + + const sourceDir = candidateSources.find((dir) => existsSync(join(dir, 'openclaw.plugin.json'))); + if (!sourceDir) { + logger.warn('Bundled QQ Bot plugin mirror not found in candidate paths', { candidateSources }); + return { + installed: false, + warning: `Bundled QQ Bot plugin mirror not found. Checked: ${candidateSources.join(' | ')}`, + }; + } + + try { + mkdirSync(join(homedir(), '.openclaw', 'extensions'), { recursive: true }); + rmSync(targetDir, { recursive: true, force: true }); + cpSync(sourceDir, targetDir, { recursive: true, dereference: true }); + + if (!existsSync(targetManifest)) { + return { installed: false, warning: 'Failed to install QQ Bot plugin mirror (manifest missing).' }; + } + + logger.info(`Installed QQ Bot plugin from bundled mirror: ${sourceDir}`); + return { installed: true }; + } catch (error) { + logger.warn('Failed to install QQ Bot plugin from bundled mirror:', error); + return { + installed: false, + warning: 'Failed to install bundled QQ Bot plugin mirror', + }; + } + } + // Get OpenClaw package status ipcMain.handle('openclaw:status', () => { const status = getOpenClawStatus(); @@ -1517,6 +1519,27 @@ function registerOpenClawHandlers(gatewayManager: GatewayManager): void { warning: installResult.warning, }; } + if (channelType === 'qqbot') { + const installResult = await ensureQQBotPluginInstalled(); + if (!installResult.installed) { + return { + success: false, + error: installResult.warning || 'QQ Bot plugin install failed', + }; + } + await saveChannelConfig(channelType, config); + if (gatewayManager.getStatus().state !== 'stopped') { + logger.info(`Scheduling Gateway reload after channel:saveConfig (${channelType})`); + gatewayManager.debouncedReload(); + } else { + logger.info(`Gateway is stopped; skip immediate reload after channel:saveConfig (${channelType})`); + } + return { + success: true, + pluginInstalled: installResult.installed, + warning: installResult.warning, + }; + } await saveChannelConfig(channelType, config); scheduleGatewayChannelRestart(`channel:saveConfig (${channelType})`); return { success: true }; diff --git a/electron/utils/channel-config.ts b/electron/utils/channel-config.ts index f8a3f284a..6e3ed988d 100644 --- a/electron/utils/channel-config.ts +++ b/electron/utils/channel-config.ts @@ -134,6 +134,21 @@ export async function saveChannelConfig( } } + // QQ Bot is a channel plugin; make sure it's explicitly allowed. + // Newer OpenClaw versions may not load non-bundled plugins when allowlist is empty. + if (channelType === 'qqbot') { + if (!currentConfig.plugins) { + currentConfig.plugins = {}; + } + currentConfig.plugins.enabled = true; + const allow = Array.isArray(currentConfig.plugins.allow) + ? currentConfig.plugins.allow as string[] + : []; + if (!allow.includes('qqbot')) { + currentConfig.plugins.allow = [...allow, 'qqbot']; + } + } + // Plugin-based channels (e.g. WhatsApp) go under plugins.entries, not channels if (PLUGIN_CHANNELS.includes(channelType)) { if (!currentConfig.plugins) { @@ -221,9 +236,9 @@ export async function saveChannelConfig( const existingDmPolicy = existingConfig.dmPolicy === 'pairing' ? 'open' : existingConfig.dmPolicy; transformedConfig.dmPolicy = transformedConfig.dmPolicy ?? existingDmPolicy ?? 'open'; - let allowFrom = transformedConfig.allowFrom ?? existingConfig.allowFrom ?? ['*']; + let allowFrom = (transformedConfig.allowFrom ?? existingConfig.allowFrom ?? ['*']) as string[]; if (!Array.isArray(allowFrom)) { - allowFrom = [allowFrom]; + allowFrom = [allowFrom] as string[]; } if (transformedConfig.dmPolicy === 'open' && !allowFrom.includes('*')) { diff --git a/package.json b/package.json index 966e5887f..469d90c7e 100644 --- a/package.json +++ b/package.json @@ -3,9 +3,11 @@ "version": "0.1.24-alpha.9", "pnpm": { "onlyBuiltDependencies": [ + "@discordjs/opus", "@whiskeysockets/baileys", "electron", "esbuild", + "koffi", "node-llama-cpp", "protobufjs", "sharp" @@ -62,6 +64,7 @@ "@radix-ui/react-tabs": "^1.1.13", "@radix-ui/react-toast": "^1.2.15", "@radix-ui/react-tooltip": "^1.2.8", + "@sliverp/qqbot": "^1.5.4", "@soimy/dingtalk": "^3.1.4", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c28c82b26..3d16afe93 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -63,9 +63,12 @@ importers: '@radix-ui/react-tooltip': specifier: ^1.2.8 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) + '@sliverp/qqbot': + specifier: ^1.5.4 + version: 1.5.4(clawdbot@2026.1.24-3(@discordjs/opus@0.10.0(encoding@0.1.13))(@types/express@5.0.6)(devtools-protocol@0.0.1595872)(encoding@0.1.13)(opusscript@0.1.1)(typescript@5.9.3))(moltbot@0.1.0)(openclaw@2026.3.1(@napi-rs/canvas@0.1.95)(@types/express@5.0.6)(encoding@0.1.13)(hono@4.11.8)(node-llama-cpp@3.16.2(typescript@5.9.3))) '@soimy/dingtalk': specifier: ^3.1.4 - version: 3.1.4(openclaw@2026.3.1(@napi-rs/canvas@0.1.95)(@types/express@5.0.6)(encoding@0.1.13)(hono@4.11.8)(node-llama-cpp@3.15.1(typescript@5.9.3))) + version: 3.1.4(openclaw@2026.3.1(@napi-rs/canvas@0.1.95)(@types/express@5.0.6)(encoding@0.1.13)(hono@4.11.8)(node-llama-cpp@3.16.2(typescript@5.9.3))) '@testing-library/jest-dom': specifier: ^6.9.1 version: 6.9.1 @@ -107,7 +110,7 @@ importers: version: 40.6.0 electron-builder: specifier: ^26.8.1 - version: 26.8.1(electron-builder-squirrel-windows@25.1.8) + version: 26.8.1(electron-builder-squirrel-windows@26.8.1) eslint: specifier: ^10.0.0 version: 10.0.0(jiti@1.21.7) @@ -134,7 +137,7 @@ importers: version: 0.563.0(react@19.2.4) openclaw: specifier: 2026.3.1 - version: 2026.3.1(@napi-rs/canvas@0.1.95)(@types/express@5.0.6)(encoding@0.1.13)(hono@4.11.8)(node-llama-cpp@3.15.1(typescript@5.9.3)) + version: 2026.3.1(@napi-rs/canvas@0.1.95)(@types/express@5.0.6)(encoding@0.1.13)(hono@4.11.8)(node-llama-cpp@3.16.2(typescript@5.9.3)) png2icons: specifier: ^2.0.1 version: 2.0.1 @@ -207,6 +210,11 @@ packages: '@adobe/css-tools@4.4.4': resolution: {integrity: sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==} + '@agentclientprotocol/sdk@0.13.1': + resolution: {integrity: sha512-6byvu+F/xc96GBkdAx4hq6/tB3vT63DSBO4i3gYCz8nuyZMerVFna2Gkhm8EHNpZX0J9DjUxzZCW+rnHXUg0FA==} + peerDependencies: + zod: ^3.25.0 || ^4.0.0 + '@agentclientprotocol/sdk@0.14.1': resolution: {integrity: sha512-b6r3PS3Nly+Wyw9U+0nOr47bV8tfS476EgyEMhoKvJCZLbgqoDFN7DJwkxL88RR0aiOqOYV1ZnESHqb+RmdH8w==} peerDependencies: @@ -216,6 +224,15 @@ packages: resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} + '@anthropic-ai/sdk@0.71.2': + resolution: {integrity: sha512-TGNDEUuEstk/DKu0/TflXAEt+p+p/WhTlFzEnoosvbaDU2LTjm42igSdlL0VijrKpWejtOKxX0b8A7uc+XiSAQ==} + hasBin: true + peerDependencies: + zod: ^3.25.0 || ^4.0.0 + peerDependenciesMeta: + zod: + optional: true + '@anthropic-ai/sdk@0.73.0': resolution: {integrity: sha512-URURVzhxXGJDGUGFunIOtBlSl7KWvZiAAKY/ttTkZAkXT9bTPqdk2eK0b8qqSxXpikh3QKPnPYpiyX98zf5ebw==} hasBin: true @@ -490,6 +507,9 @@ packages: '@buape/carbon@0.0.0-beta-20260216184201': resolution: {integrity: sha512-u5mgYcigfPVqT7D9gVTGd+3YSflTreQmrWog7ORbb0z5w9eT8ft4rJOdw9fGwr75zMu9kXpSBaAcY2eZoJFSdA==} + '@buape/carbon@0.14.0': + resolution: {integrity: sha512-mavllPK2iVpRNRtC4C8JOUdJ1hdV0+LDelFW+pjpJaM31MBLMfIJ+f/LlYTIK5QrEcQsXOC+6lU2e0gmgjWhIQ==} + '@cacheable/memory@2.0.7': resolution: {integrity: sha512-RbxnxAMf89Tp1dLhXMS7ceft/PGsDl1Ip7T20z5nZ+pwIAsQ1p2izPjVG69oCLv/jfQ7HDPHTWK0c9rcAWXN3A==} @@ -583,34 +603,25 @@ packages: resolution: {integrity: sha512-jNT8nwH1f9X5GEITXaQ8IF/KdskvIkOFfB2CvwumsveVidzpSc+mvhhTMdAGSYF3O+Nq49lJ7y+ssODRXu06+A==} engines: {node: '>= 10.0.0'} - '@electron/osx-sign@1.3.1': - resolution: {integrity: sha512-BAfviURMHpmb1Yb50YbCxnOY0wfwaLXH5KJ4+80zS0gUkzDX3ec23naTlEqKsN+PwYn+a1cCzM7BJ4Wcd3sGzw==} - engines: {node: '>=12.0.0'} - hasBin: true - '@electron/osx-sign@1.3.3': resolution: {integrity: sha512-KZ8mhXvWv2rIEgMbWZ4y33bDHyUKMXnx4M0sTyPNK/vcB81ImdeY9Ggdqy0SWbMDgmbqyQ+phgejh6V3R2QuSg==} engines: {node: '>=12.0.0'} hasBin: true - '@electron/rebuild@3.6.1': - resolution: {integrity: sha512-f6596ZHpEq/YskUd8emYvOUne89ij8mQgjYFA5ru25QwbrRO+t1SImofdDv7kKOuWCmVOuU5tvfkbgGxIl3E/w==} - engines: {node: '>=12.13.0'} - hasBin: true - '@electron/rebuild@4.0.3': resolution: {integrity: sha512-u9vpTHRMkOYCs/1FLiSVAFZ7FbjsXK+bQuzviJZa+lG7BHZl1nz52/IcGvwa3sk80/fc3llutBkbCq10Vh8WQA==} engines: {node: '>=22.12.0'} hasBin: true - '@electron/universal@2.0.1': - resolution: {integrity: sha512-fKpv9kg4SPmt+hY7SVBnIYULE9QJl8L3sCfcBsnqbJwwBwAeTLokJ9TRt9y7bK0JAzIW2y78TVVjvnQEms/yyA==} - engines: {node: '>=16.4'} - '@electron/universal@2.0.3': resolution: {integrity: sha512-Wn9sPYIVFRFl5HmwMJkARCCf7rqK/EurkfQ/rJZ14mHP3iYTjZSIOSVonEAnhWeAXwtw7zOekGRlc6yTtZ0t+g==} engines: {node: '>=16.4'} + '@electron/windows-sign@1.2.2': + resolution: {integrity: sha512-dfZeox66AvdPtb2lD8OsIIQh12Tp0GNCRUDfBHIKGpbmopZto2/A8nSpYYLoedPIHpqkeblZ/k8OV0Gy7PYuyQ==} + engines: {node: '>=14.14'} + hasBin: true + '@emnapi/core@1.8.1': resolution: {integrity: sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==} @@ -839,8 +850,14 @@ packages: '@floating-ui/utils@0.2.10': resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} - '@gar/promisify@1.1.3': - resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} + '@google/genai@1.34.0': + resolution: {integrity: sha512-vu53UMPvjmb7PGzlYu6Tzxso8Dfhn+a7eQFaS2uNemVtDZKwzSpJ5+ikqBbXplF7RGB1STcVDqCkPvquiwb2sw==} + engines: {node: '>=20.0.0'} + peerDependencies: + '@modelcontextprotocol/sdk': ^1.24.0 + peerDependenciesMeta: + '@modelcontextprotocol/sdk': + optional: true '@google/genai@1.42.0': resolution: {integrity: sha512-+3nlMTcrQufbQ8IumGkOphxD5Pd5kKyJOzLcnY0/1IuE8upJk5aLmoexZ2BJhBp1zAjRJMEB4a2CJwKI9e2EYw==} @@ -1059,6 +1076,10 @@ packages: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} + '@isaacs/cliui@9.0.0': + resolution: {integrity: sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==} + engines: {node: '>=18'} + '@isaacs/fs-minipass@4.0.1': resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} engines: {node: '>=18.0.0'} @@ -1214,20 +1235,38 @@ packages: resolution: {integrity: sha512-faGUlTcXka5l7rv0lP3K3vGW/ejRuOS24RR2aSFWREUQqzjgdsuWNo/IiPqL3kWRGt6Ahl2+qcDAwtdeWeuGUw==} hasBin: true + '@mariozechner/pi-agent-core@0.49.3': + resolution: {integrity: sha512-YL3PrLA8//Cklx58GJBUyNBCVLIOtK+wpAgqimuR03EgToaGPkSM7B/1S4CP4pFkr7b3DTIsC6t++tK7LgfjQg==} + engines: {node: '>=20.0.0'} + '@mariozechner/pi-agent-core@0.55.3': resolution: {integrity: sha512-rqbfpQ9BrP6BDiW+Ps3A8Z/p9+Md/pAfc/ECq8JP6cwnZL/jQgU355KWZKtF8zM9az1p0Q9hIWi9cQygVo6Auw==} engines: {node: '>=20.0.0'} + '@mariozechner/pi-ai@0.49.3': + resolution: {integrity: sha512-FYck4TPrF7ps3WBKxLnBQdda9OXUWN6rukni0LgK8m/GpMAXGienHouDrWPn0XIgTwrz5r7SGI3sfsEYslCICA==} + engines: {node: '>=20.0.0'} + hasBin: true + '@mariozechner/pi-ai@0.55.3': resolution: {integrity: sha512-f9jWoDzJR9Wy/H8JPMbjoM4WvVUeFZ65QdYA9UHIfoOopDfwWE8F8JHQOj5mmmILMacXuzsqA3J7MYqNWZRvvQ==} engines: {node: '>=20.0.0'} hasBin: true + '@mariozechner/pi-coding-agent@0.49.3': + resolution: {integrity: sha512-V/Fsq0PeYB5svmw5lZsbD/glmkXofegQcPSKecK2ab3VihKwQp/MQfYjyK6nY4b/B1HIugatcDWaH5WvPKIKwg==} + engines: {node: '>=20.0.0'} + hasBin: true + '@mariozechner/pi-coding-agent@0.55.3': resolution: {integrity: sha512-5SFbB7/BIp/Crjre7UNjUeNfpoU1KSW/i6LXa+ikJTBqI5LukWq2avE5l0v0M8Pg/dt1go2XCLrNFlQJiQDSPQ==} engines: {node: '>=20.0.0'} hasBin: true + '@mariozechner/pi-tui@0.49.3': + resolution: {integrity: sha512-SyBtQ0B9A/8V4eX7z3l9Q7sEVAnSueNJ1gC6+nRakDBfBOSxuqA61vz6tic0C7Jj46NERRuvJKdQSmk1VP5sUA==} + engines: {node: '>=20.0.0'} + '@mariozechner/pi-tui@0.55.3': resolution: {integrity: sha512-Gh4wkYgiSPCJJaB/4wEWSL7Ga8bxSq1Crp1RPRT4vKybE/DG0W/MQr5VJDvktarxtJrD16ixScwE4dzdox/PIA==} engines: {node: '>=20.0.0'} @@ -1317,86 +1356,106 @@ packages: '@napi-rs/wasm-runtime@1.1.1': resolution: {integrity: sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A==} - '@node-llama-cpp/linux-arm64@3.15.1': - resolution: {integrity: sha512-g7JC/WwDyyBSmkIjSvRF2XLW+YA0z2ZVBSAKSv106mIPO4CzC078woTuTaPsykWgIaKcQRyXuW5v5XQMcT1OOA==} + '@node-llama-cpp/linux-arm64@3.15.0': + resolution: {integrity: sha512-IaHIllWlj6tGjhhCtyp1w6xA7AHaGJiVaXAZ+78hDs8X1SL9ySBN2Qceju8AQJALePtynbAfjgjTqjQ7Hyk+IQ==} engines: {node: '>=20.0.0'} cpu: [arm64, x64] os: [linux] libc: [glibc] - '@node-llama-cpp/linux-armv7l@3.15.1': - resolution: {integrity: sha512-MSxR3A0vFSVWbmVSkNqNXQnI45L2Vg7/PRgJukcjChk7YzRxs9L+oQMeycVW3BsQ03mIZ0iORsZ9MNIBEbdS3g==} + '@node-llama-cpp/linux-arm64@3.16.2': + resolution: {integrity: sha512-CxzgPsS84wL3W5sZRgxP3c9iJKEW+USrak1SmX6EAJxW/v9QGzehvT6W/aR1FyfidiIyQtOp3ga0Gg/9xfJPGw==} + engines: {node: '>=20.0.0'} + cpu: [arm64, x64] + os: [linux] + libc: [glibc] + + '@node-llama-cpp/linux-armv7l@3.15.0': + resolution: {integrity: sha512-ZuZ3q6mejQnEP4o22la7zBv7jNR+IZfgItDm3KjAl04HUXTKJ43HpNwjnf9GyYYd+dEgtoX0MESvWz4RnGH8Jw==} engines: {node: '>=20.0.0'} cpu: [arm, x64] os: [linux] libc: [glibc] - '@node-llama-cpp/linux-x64-cuda-ext@3.15.1': - resolution: {integrity: sha512-toepvLcXjgaQE/QGIThHBD58jbHGBWT1jhblJkCjYBRHfVOO+6n/PmVsJt+yMfu5Z93A2gF8YOvVyZXNXmGo5g==} + '@node-llama-cpp/linux-armv7l@3.16.2': + resolution: {integrity: sha512-9G6W/MkQ/DLwGmpcj143NQ50QJg5gQZfzVf5RYx77VczBqhgwkgYHILekYrOs4xanOeqeJ8jnOnQQSp1YaJZUg==} + engines: {node: '>=20.0.0'} + cpu: [arm, x64] + os: [linux] + libc: [glibc] + + '@node-llama-cpp/linux-x64-vulkan@3.15.0': + resolution: {integrity: sha512-htVIthQKq/rr8v5e7NiVtcHsstqTBAAC50kUymmDMbrzAu6d/EHacCJpNbU57b1UUa1nKN5cBqr6Jr+QqEalMA==} engines: {node: '>=20.0.0'} cpu: [x64] os: [linux] libc: [glibc] - '@node-llama-cpp/linux-x64-cuda@3.15.1': - resolution: {integrity: sha512-kngwoq1KdrqSr/b6+tn5jbtGHI0tZnW5wofKssZy+Il2ge3eN9FowKbXG4FH452g6qSSVoDccAoTvYOxyLyX+w==} + '@node-llama-cpp/linux-x64-vulkan@3.16.2': + resolution: {integrity: sha512-HDLAw4ZhwJuhKuF6n4x520yZXAQZahUOXtCGvPubjfpmIOElKrfDvCVlRsthAP0JwcwINzIQlVys3boMIXfBgw==} engines: {node: '>=20.0.0'} cpu: [x64] os: [linux] libc: [glibc] - '@node-llama-cpp/linux-x64-vulkan@3.15.1': - resolution: {integrity: sha512-CMsyQkGKpHKeOH9+ZPxo0hO0usg8jabq5/aM3JwdX9CiuXhXUa3nu3NH4RObiNi596Zwn/zWzlps0HRwcpL8rw==} + '@node-llama-cpp/linux-x64@3.15.0': + resolution: {integrity: sha512-etUuTqSyNefRObqc5+JZviNTkuef2XEtHcQLaamEIWwjI1dj7nTD2YMZPBP7H3M3E55HSIY82vqCQ1bp6ZILiA==} engines: {node: '>=20.0.0'} cpu: [x64] os: [linux] libc: [glibc] - '@node-llama-cpp/linux-x64@3.15.1': - resolution: {integrity: sha512-w4SdxJaA9eJLVYWX+Jv48hTP4oO79BJQIFURMi7hXIFXbxyyOov/r6sVaQ1WiL83nVza37U5Qg4L9Gb/KRdNWQ==} + '@node-llama-cpp/linux-x64@3.16.2': + resolution: {integrity: sha512-OXYf8rVfoDyvN+YrfKk8F9An9a5GOxVIM8OcR1U911tc0oRNf8yfJrQ8KrM75R26gwq0Y6YZwVTP0vRCInwWOw==} engines: {node: '>=20.0.0'} cpu: [x64] os: [linux] libc: [glibc] - '@node-llama-cpp/mac-arm64-metal@3.15.1': - resolution: {integrity: sha512-ePTweqohcy6Gjs1agXWy4FxAw5W4Avr7NeqqiFWJ5ngZ1U3ZXdruUHB8L/vDxyn3FzKvstrFyN7UScbi0pzXrA==} + '@node-llama-cpp/mac-arm64-metal@3.15.0': + resolution: {integrity: sha512-3Vkq6bpyQZaIzoaLLP7H2Tt8ty5BS0zxUY2pX0ox2S9P4fp8Au0CCJuUJF4V+EKi+/PTn70A6R1QCkRMfMQJig==} engines: {node: '>=20.0.0'} cpu: [arm64, x64] os: [darwin] - '@node-llama-cpp/mac-x64@3.15.1': - resolution: {integrity: sha512-NAetSQONxpNXTBnEo7oOkKZ84wO2avBy6V9vV9ntjJLb/07g7Rar8s/jVaicc/rVl6C+8ljZNwqJeynirgAC5w==} + '@node-llama-cpp/mac-arm64-metal@3.16.2': + resolution: {integrity: sha512-nEZ74qB0lUohF88yR741YUrUqz/qD+FJFzUTHj0FwxAynSZCjvwtzEDtavRlh3qd3yLD/0ChNn00/RQ54ISImw==} + engines: {node: '>=20.0.0'} + cpu: [arm64, x64] + os: [darwin] + + '@node-llama-cpp/mac-x64@3.15.0': + resolution: {integrity: sha512-BUrmLu0ySveEYv2YzFIjqnWWAqjTZfRHuzoFLaZwqIJ86Jzycm9tzxJub4wfJCj6ixeuWyI1sUdNGIw4/2E03Q==} engines: {node: '>=20.0.0'} cpu: [x64] os: [darwin] - '@node-llama-cpp/win-arm64@3.15.1': - resolution: {integrity: sha512-1O9tNSUgvgLL5hqgEuYiz7jRdA3+9yqzNJyPW1jExlQo442OA0eIpHBmeOtvXLwMkY7qv7wE75FdOPR7NVEnvg==} + '@node-llama-cpp/mac-x64@3.16.2': + resolution: {integrity: sha512-BjA+DgeDt+kRxVMV6kChb9XVXm7U5b90jUif7Z/s6ZXtOOnV6exrTM2W09kbSqAiNhZmctcVY83h2dwNTZ/yIw==} + engines: {node: '>=20.0.0'} + cpu: [x64] + os: [darwin] + + '@node-llama-cpp/win-arm64@3.15.0': + resolution: {integrity: sha512-GwhqaPNpbtGDmw0Ex13hwq4jqzSZr7hw5QpRWhSKB1dHiYj6C1NLM1Vz5xiDZX+69WI/ndb+FEqGiIYFQpfmiQ==} engines: {node: '>=20.0.0'} cpu: [arm64, x64] os: [win32] - '@node-llama-cpp/win-x64-cuda-ext@3.15.1': - resolution: {integrity: sha512-mO3Tf6D3UlFkjQF5J96ynTkjdF7dac/f5f61cEh6oU4D3hdx+cwnmBWT1gVhDSLboJYzCHtx7U2EKPP6n8HoWA==} + '@node-llama-cpp/win-arm64@3.16.2': + resolution: {integrity: sha512-XHNFQzUjYODtkZjIn4NbQVrBtGB9RI9TpisiALryqfrIqagQmjBh6dmxZWlt5uduKAfT7M2/2vrABGR490FACA==} + engines: {node: '>=20.0.0'} + cpu: [arm64, x64] + os: [win32] + + '@node-llama-cpp/win-x64@3.15.0': + resolution: {integrity: sha512-gWhtc8l3HOry5guO46YfFohLQnF0NfL4On0GAO8E27JiYYxHO9nHSCfFif4+U03+FfHquZXL0znJ1qPVOiwOPw==} engines: {node: '>=20.0.0'} cpu: [x64] os: [win32] - '@node-llama-cpp/win-x64-cuda@3.15.1': - resolution: {integrity: sha512-swoyx0/dY4ixiu3mEWrIAinx0ffHn9IncELDNREKG+iIXfx6w0OujOMQ6+X+lGj+sjE01yMUP/9fv6GEp2pmBw==} - engines: {node: '>=20.0.0'} - cpu: [x64] - os: [win32] - - '@node-llama-cpp/win-x64-vulkan@3.15.1': - resolution: {integrity: sha512-BPBjUEIkFTdcHSsQyblP0v/aPPypi6uqQIq27mo4A49CYjX22JDmk4ncdBLk6cru+UkvwEEe+F2RomjoMt32aQ==} - engines: {node: '>=20.0.0'} - cpu: [x64] - os: [win32] - - '@node-llama-cpp/win-x64@3.15.1': - resolution: {integrity: sha512-jtoXBa6h+VPsQgefrO7HDjYv4WvxfHtUO30ABwCUDuEgM0e05YYhxMZj1z2Ns47UrquNvd/LUPCyjHKqHUN+5Q==} + '@node-llama-cpp/win-x64@3.16.2': + resolution: {integrity: sha512-etrivzbyLNVhZlUosFW8JSL0OSiuKQf9qcI3dNdehD907sHquQbBJrG7lXcdL6IecvXySp3oAwCkM87VJ0b3Fg==} engines: {node: '>=20.0.0'} cpu: [x64] os: [win32] @@ -1421,19 +1480,10 @@ packages: resolution: {integrity: sha512-S79NdEgDQd/NGCay6TCoVzXSj74skRZIKJcpJjC5lOq34SZzyI6MqtiiWoiVWoVrTcGjNeC4ipbh1VIHlpfF5Q==} engines: {node: ^18.17.0 || >=20.5.0} - '@npmcli/fs@2.1.2': - resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - '@npmcli/fs@4.0.0': resolution: {integrity: sha512-/xGlezI6xfGO9NwuJlnwz/K14qD1kCSAGtacBHnGzeAIuJGazcp45KP5NuyARXoKb7cwulAGWVsbeSxdG/cb0Q==} engines: {node: ^18.17.0 || >=20.5.0} - '@npmcli/move-file@2.0.1': - resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - deprecated: This functionality has been moved to @npmcli/fs - '@octokit/app@16.1.2': resolution: {integrity: sha512-8j7sEpUYVj18dxvh0KWj6W/l6uAiVRBl1JBDVRqH1VHKAO/G5eRVl4yEoYACjakWers1DjUkcCHyJNQK47JqyQ==} engines: {node: '>= 20'} @@ -2230,6 +2280,9 @@ packages: '@silvia-odwyer/photon-node@0.3.4': resolution: {integrity: sha512-bnly4BKB3KDTFxrUIcgCLbaeVVS8lrAkri1pEzskpmxu9MdfGQTy8b8EgcD83ywD3RPMsIulY8xJH5Awa+t9fA==} + '@sinclair/typebox@0.34.47': + resolution: {integrity: sha512-ZGIBQ+XDvO5JQku9wmwtabcVTHJsgSWAHYtVuM9pBNNR5E88v6Jcj/llpmsjivig5X8A8HHOb4/mbEKPS5EvAw==} + '@sinclair/typebox@0.34.48': resolution: {integrity: sha512-kKJTNuK3AQOrgjjotVxMrCn1sUJwM76wMszfq1kdU4uYVJjvEWuFQ6HgvLt4Xz3fSmZlTOxJ/Ie13KnIcWQXFA==} @@ -2263,6 +2316,18 @@ packages: resolution: {integrity: sha512-RoygyteJeFswxDPJjUMESn9dldWVMD2xUcHHd9DenVavSfVC6FeVnSdDerOO7m8LLvw4Q132nQM4hX8JiF7dng==} engines: {node: '>= 18', npm: '>= 8.6.0'} + '@sliverp/qqbot@1.5.4': + resolution: {integrity: sha512-O9T2mLVeWFUi5Q5TuVfWk/Bmrc1ZDjOfjNviKkHX93xk7+I0wndRY2ibrEvlYrINYVHGTh9uwodhTCcOj0AX7g==} + hasBin: true + peerDependencies: + clawdbot: '*' + moltbot: '*' + openclaw: '*' + bundledDependencies: + - mpg123-decoder + - silk-wasm + - ws + '@smithy/abort-controller@4.2.10': resolution: {integrity: sha512-qocxM/X4XGATqQtUkbE9SPUB6wekBi+FyJOMbPj0AhvyvFGYEmOlz6VB22iMePCQsFmMIvFSeViDvA7mZJG47g==} engines: {node: '>=18.0.0'} @@ -2592,10 +2657,6 @@ packages: '@tokenizer/token@0.3.0': resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} - '@tootallnate/once@2.0.0': - resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} - engines: {node: '>= 10'} - '@tootallnate/quickjs-emscripten@0.23.0': resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} @@ -2623,6 +2684,9 @@ packages: '@types/body-parser@1.19.6': resolution: {integrity: sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==} + '@types/bun@1.3.6': + resolution: {integrity: sha512-uWCv6FO/8LcpREhenN1d1b6fcspAB+cefwD7uti8C8VffIv0Um08TKMn98FynpTiU38+y2dUO55T11NgDt8VAA==} + '@types/bun@1.3.9': resolution: {integrity: sha512-KQ571yULOdWJiMH+RIWIOZ7B2RXQGpL1YQrBtLIV3FqDcCu6FsbFUBwhdKUlCKUpS3PJDsHlJ1QKlpxoVR+xtw==} @@ -2902,14 +2966,6 @@ packages: resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} engines: {node: '>= 14'} - agentkeepalive@4.6.0: - resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} - engines: {node: '>= 8.0.0'} - - aggregate-error@3.1.0: - resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} - engines: {node: '>=8'} - ajv-formats@3.0.1: resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} peerDependencies: @@ -2960,19 +3016,9 @@ packages: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} - app-builder-bin@5.0.0-alpha.10: - resolution: {integrity: sha512-Ev4jj3D7Bo+O0GPD2NMvJl+PGiBAfS7pUGawntBNpCbxtpncfUixqFj9z9Jme7V7s3LBGqsWZZP54fxBX3JKJw==} - app-builder-bin@5.0.0-alpha.12: resolution: {integrity: sha512-j87o0j6LqPL3QRr8yid6c+Tt5gC7xNfYo6uQIQkorAC6MpeayVMZrEDzKmJJ/Hlv7EnOQpaRm53k6ktDYZyB6w==} - app-builder-lib@25.1.8: - resolution: {integrity: sha512-pCqe7dfsQFBABC1jeKZXQWhGcCPF3rPCXDdfqVKjIeWBcXzyC1iOWZdfFhGl+S9MyE/k//DFmC6FzuGAUudNDg==} - engines: {node: '>=14.0.0'} - peerDependencies: - dmg-builder: 25.1.8 - electron-builder-squirrel-windows: 25.1.8 - app-builder-lib@26.8.1: resolution: {integrity: sha512-p0Im/Dx5C4tmz8QEE1Yn4MkuPC8PrnlRneMhWJj7BBXQfNTJUshM/bp3lusdEsDbvvfJZpXWnYesgSLvwtM2Zw==} engines: {node: '>=14.0.0'} @@ -2983,18 +3029,6 @@ packages: aproba@2.1.0: resolution: {integrity: sha512-tLIEcj5GuR2RSTnxNKdkK0dJ/GrC7P38sUkiDmDuHfsHmbagTFAxDVIBltoklXEVIQ/f14IL8IMJ5pn9Hez1Ew==} - archiver-utils@2.1.0: - resolution: {integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==} - engines: {node: '>= 6'} - - archiver-utils@3.0.4: - resolution: {integrity: sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==} - engines: {node: '>= 10'} - - archiver@5.3.2: - resolution: {integrity: sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==} - engines: {node: '>= 10'} - are-we-there-yet@2.0.0: resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} engines: {node: '>=10'} @@ -3120,12 +3154,6 @@ packages: bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - bluebird-lst@1.0.9: - resolution: {integrity: sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==} - - bluebird@3.7.2: - resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} - body-parser@2.2.2: resolution: {integrity: sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==} engines: {node: '>=18'} @@ -3174,20 +3202,16 @@ packages: buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - builder-util-runtime@9.2.10: - resolution: {integrity: sha512-6p/gfG1RJSQeIbz8TK5aPNkoztgY1q5TgmGFMAXcY8itsGW6Y2ld1ALsZ5UJn8rog7hKF3zHx5iQbNQ8uLcRlw==} - engines: {node: '>=12.0.0'} - builder-util-runtime@9.5.1: resolution: {integrity: sha512-qt41tMfgHTllhResqM5DcnHyDIWNgzHvuY2jDcYP9iaGpkWxTUzV6GQjDeLnlR1/DtdlcsWQbA7sByMpmJFTLQ==} engines: {node: '>=12.0.0'} - builder-util@25.1.7: - resolution: {integrity: sha512-7jPjzBwEGRbwNcep0gGNpLXG9P94VA3CPAZQCzxkFXiV2GMQKlziMbY//rXPI7WKfhsvGgFXjTcXdBEwgXw9ww==} - builder-util@26.8.1: resolution: {integrity: sha512-pm1lTYbGyc90DHgCDO7eo8Rl4EqKLciayNbZqGziqnH9jrlKe8ZANGdityLZU+pJh16dfzjAx2xQq9McuIPEtw==} + bun-types@1.3.6: + resolution: {integrity: sha512-OlFwHcnNV99r//9v5IIOgQ9Uk37gZqrNMCcqEaExdkVq3Avwqok1bJFmvGMCkCE0FqzdY8VMOZpfpR3lwI+CsQ==} + bun-types@1.3.9: resolution: {integrity: sha512-+UBWWOakIP4Tswh0Bt0QD0alpTY8cb5hvgiYeWCMet9YukHbzuruIEeXC2D7nMJPB12kbh8C7XJykSexEqGKJg==} @@ -3195,10 +3219,6 @@ packages: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} - cacache@16.1.3: - resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - cacache@19.0.1: resolution: {integrity: sha512-hdsUxulXCi5STId78vRVYEtDAjq99ICAUktLTeTYsLoTE6Z8dS0c8pWNCxwdrk9YfJeobDZc2Y186hD/5ZQgFQ==} engines: {node: ^18.17.0 || >=20.5.0} @@ -3275,13 +3295,14 @@ packages: resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} engines: {node: '>=18'} + chromium-bidi@13.0.1: + resolution: {integrity: sha512-c+RLxH0Vg2x2syS9wPw378oJgiJNXtYXUvnVAldUlt5uaHekn0CCU7gPksNgHjrH1qFhmjVXQj4esvuthuC7OQ==} + peerDependencies: + devtools-protocol: '*' + chromium-pickle-js@0.2.0: resolution: {integrity: sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==} - ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} - engines: {node: '>=8'} - ci-info@4.3.1: resolution: {integrity: sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==} engines: {node: '>=8'} @@ -3293,15 +3314,16 @@ packages: class-variance-authority@0.7.1: resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} + clawdbot@2026.1.24-3: + resolution: {integrity: sha512-zt9BzhWXduq8ZZR4rfzQDurQWAgmijTTyPZCQGrn5ew6wCEwhxxEr2/NHG7IlCwcfRsKymsY4se9KMhoNz0JtQ==} + engines: {node: '>=22.12.0'} + hasBin: true + clawhub@0.5.0: resolution: {integrity: sha512-tIPoup8mY3ojR+fzzf85ft+vrhMd6u6188QzBEOf/f5/0NSoWW0fl7ojw6VgVSLbBtLa5MGQDxSuZkf9TqPwIw==} engines: {node: '>=20'} hasBin: true - clean-stack@2.2.0: - resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} - engines: {node: '>=6'} - cli-cursor@3.1.0: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} engines: {node: '>=8'} @@ -3350,6 +3372,11 @@ packages: engines: {node: '>= 14.15.0'} hasBin: true + cmake-js@8.0.0: + resolution: {integrity: sha512-YbUP88RDwCvoQkZhRtGURYm9RIpWdtvZuhT87fKNoLjk8kIFIFeARpKfuZQGdwfH99GZpUmqSfcDrK62X7lTgg==} + engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true + color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} @@ -3384,14 +3411,14 @@ packages: resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} engines: {node: '>= 6'} + commander@9.5.0: + resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} + engines: {node: ^12.20.0 || >=14} + compare-version@0.1.2: resolution: {integrity: sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==} engines: {node: '>=0.10.0'} - compress-commons@4.1.2: - resolution: {integrity: sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==} - engines: {node: '>= 10'} - concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} @@ -3399,9 +3426,6 @@ packages: resolution: {integrity: sha512-Uy5YN9KEu0WWDaZAVJ5FAmZoaJt9rdK6kH+utItPyGsCqCgaTKkrmZx3zoE0/3q6S3bcp3Ihkk+ZqPxWxFK5og==} engines: {node: '>=20'} - config-file-ts@0.2.8-rc1: - resolution: {integrity: sha512-GtNECbVI82bT4RiDIzBSVuTKoSHufnU7Ce7/42bkWZJZFLjmDF2WBpVsvRkhKCfKBnTBb3qZrBwPpFBU/Myvhg==} - console-control-strings@1.1.0: resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} @@ -3434,15 +3458,6 @@ packages: core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - crc-32@1.2.2: - resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} - engines: {node: '>=0.8'} - hasBin: true - - crc32-stream@4.0.3: - resolution: {integrity: sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==} - engines: {node: '>= 10'} - crc@3.8.0: resolution: {integrity: sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==} @@ -3450,6 +3465,13 @@ packages: resolution: {integrity: sha512-ixNtAJndqh173VQ4KodSdJEI6nuioBWI0V1ITNKhZZsO0pEMoDxz539T4FTTbSZ/xIOSuDnzxLVRqBVSvPNE2g==} engines: {node: '>=18.0'} + croner@9.1.0: + resolution: {integrity: sha512-p9nwwR4qyT5W996vBZhdvBCnMhicY5ytZkR4D1Xj0wuTDEiMnjwR57Q3RXYY/s0EpX6Ay3vgIcfaR+ewGHsi+g==} + engines: {node: '>=18.0'} + + cross-dirname@0.1.0: + resolution: {integrity: sha512-+R08/oI0nl3vfPcqftZRpytksBXDzOUveBq/NBVx0sUp1axwzPQrKinNx5yd5sxPu8j1wIy8AfnVQ+5eFdha6Q==} + cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} @@ -3575,6 +3597,9 @@ packages: devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + devtools-protocol@0.0.1595872: + resolution: {integrity: sha512-kRfgp8vWVjBu/fbYCiVFiOqsCk3CrMKEo3WbgGT2NXK2dG7vawWPBljixajVgGK9II8rDO9G0oD0zLt3I1daRg==} + didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} @@ -3659,17 +3684,14 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-builder-squirrel-windows@25.1.8: - resolution: {integrity: sha512-2ntkJ+9+0GFP6nAISiMabKt6eqBB0kX1QqHNWFWAXgi0VULKGisM46luRFpIBiU3u/TDmhZMM8tzvo2Abn3ayg==} + electron-builder-squirrel-windows@26.8.1: + resolution: {integrity: sha512-o288fIdgPLHA76eDrFADHPoo7VyGkDCYbLV1GzndaMSAVBoZrGvM9m2IehdcVMzdAZJ2eV9bgyissQXHv5tGzA==} electron-builder@26.8.1: resolution: {integrity: sha512-uWhx1r74NGpCagG0ULs/P9Nqv2nsoo+7eo4fLUOB8L8MdWltq9odW/uuLXMFCDGnPafknYLZgjNX0ZIFRzOQAw==} engines: {node: '>=14.0.0'} hasBin: true - electron-publish@25.1.7: - resolution: {integrity: sha512-+jbTkR9m39eDBMP4gfbqglDd6UvBC7RLh5Y0MhFSsc6UkGHj9Vj9TWobxevHYMMqmoujL11ZLjfPpMX+Pt6YEg==} - electron-publish@26.8.1: resolution: {integrity: sha512-q+jrSTIh/Cv4eGZa7oVR+grEJo/FoLMYBAnSL5GCtqwUpr1T+VgKB/dn1pnzxIxqD8S/jP1yilT9VrwCqINR4w==} @@ -3683,6 +3705,10 @@ packages: electron-updater@6.8.3: resolution: {integrity: sha512-Z6sgw3jgbikWKXei1ENdqFOxBP0WlXg3TtKfz0rgw2vIZFJUyI4pD7ZN7jrkm7EoMK+tcm/qTnPUdqfZukBlBQ==} + electron-winstaller@5.4.0: + resolution: {integrity: sha512-bO3y10YikuUwUuDUQRM4KfwNkKhnpVO7IPdbsrejwN9/AABJzzTQ4GeHwyzNSrVO+tEH3/Np255a3sVZpZDjvg==} + engines: {node: '>=8.0.0'} + electron@40.6.0: resolution: {integrity: sha512-ett8W+yOFGDuM0vhJMamYSkrbV3LoaffzJd9GfjI96zRAxyrNqUSKqBpf/WGbQCweDxX2pkUCUfrv4wwKpsFZA==} engines: {node: '>= 12.20.55'} @@ -4011,9 +4037,6 @@ packages: resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} engines: {node: '>= 0.8'} - fs-constants@1.0.0: - resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} - fs-extra@10.1.0: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} @@ -4022,6 +4045,10 @@ packages: resolution: {integrity: sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg==} engines: {node: '>=14.14'} + fs-extra@7.0.1: + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + engines: {node: '>=6 <7 || >=8'} + fs-extra@8.1.0: resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} engines: {node: '>=6 <7 || >=8'} @@ -4111,6 +4138,11 @@ packages: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true + glob@11.1.0: + resolution: {integrity: sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==} + engines: {node: 20 || >=22} + hasBin: true + glob@13.0.6: resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} engines: {node: 18 || 20 || >=22} @@ -4119,11 +4151,6 @@ packages: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported - glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} - deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me - global-agent@3.0.0: resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==} engines: {node: '>=10.0'} @@ -4200,6 +4227,10 @@ packages: highlight.js@10.7.3: resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} + hono@4.11.4: + resolution: {integrity: sha512-U7tt8JsyrxSRKspfhtLET79pU8K+tInj5QZXs1jSugO1Vq5dFj3kmZsRldo29mTBfcjDRVRXrEZ6LS63Cog9ZA==} + engines: {node: '>=16.9.0'} + hono@4.11.8: resolution: {integrity: sha512-eVkB/CYCCei7K2WElZW9yYQFWssG0DhaDhVvr7wy5jJ22K+ck8fWW0EsLpB0sITUTvPnc97+rrbQqIr5iqiy9Q==} engines: {node: '>=16.9.0'} @@ -4238,10 +4269,6 @@ packages: resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} engines: {node: '>= 0.8'} - http-proxy-agent@5.0.0: - resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} - engines: {node: '>= 6'} - http-proxy-agent@7.0.2: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} @@ -4258,9 +4285,6 @@ packages: resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} - humanize-ms@1.2.1: - resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} - i18next@25.8.11: resolution: {integrity: sha512-LZ32llTLGludnddjLoijHV7TbmVubU5eJnsWf8taiuM3jmSfUuvBLuyDeubJKS1yBjLBgb7As124M4KWNcBvpw==} peerDependencies: @@ -4304,9 +4328,6 @@ packages: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} - infer-owner@1.0.4: - resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} - inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. @@ -4337,6 +4358,11 @@ packages: engines: {node: '>=18.0.0'} hasBin: true + ipull@3.9.5: + resolution: {integrity: sha512-5w/yZB5lXmTfsvNawmvkCjYo4SJNuKQz/av8TC1UiOyfOHyaM+DReqbpU2XpWYfmY+NIUbRRH8PUAWsxaS+IfA==} + engines: {node: '>=18.0.0'} + hasBin: true + is-alphabetical@2.0.1: resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} @@ -4347,10 +4373,6 @@ packages: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} - is-ci@3.0.1: - resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} - hasBin: true - is-core-module@2.16.1: resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} engines: {node: '>= 0.4'} @@ -4388,9 +4410,6 @@ packages: resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} engines: {node: '>=12'} - is-lambda@1.0.1: - resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} - is-network-error@1.3.0: resolution: {integrity: sha512-6oIwpsgRfnDiyEDLMay/GqCl3HoAtH5+RUKW29gYkL0QA+ipzpDLA16yQs7/RHCSu+BwgbJaOUqa4A99qNVQVw==} engines: {node: '>=16'} @@ -4443,9 +4462,17 @@ packages: resolution: {integrity: sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==} engines: {node: '>=18'} + isexe@4.0.0: + resolution: {integrity: sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==} + engines: {node: '>=20'} + jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + jackspeak@4.2.3: + resolution: {integrity: sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==} + engines: {node: 20 || >=22} + jake@10.9.4: resolution: {integrity: sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==} engines: {node: '>=10'} @@ -4541,10 +4568,6 @@ packages: lazy-val@1.0.5: resolution: {integrity: sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==} - lazystream@1.0.1: - resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} - engines: {node: '>= 0.6.3'} - levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} @@ -4584,18 +4607,9 @@ packages: lodash.debounce@4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - lodash.defaults@4.2.0: - resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} - - lodash.difference@4.5.0: - resolution: {integrity: sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==} - lodash.escaperegexp@4.1.2: resolution: {integrity: sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==} - lodash.flatten@4.4.0: - resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==} - lodash.identity@3.0.0: resolution: {integrity: sha512-AupTIzdLQxJS5wIYUQlgGyk2XRTfGXA+MCghDHqZk0pzUNYvd3EESS6dkChNauNYVIutcb0dfHw1ri9Q1yPV8Q==} @@ -4630,9 +4644,6 @@ packages: lodash.pickby@4.6.0: resolution: {integrity: sha512-AZV+GsS/6ckvPOVQPXSiFFacKvKB4kOQu6ynt9wz0F3LO4R9Ij4K1ddYsIytDpSgLz88JHd9P+oaLeej5/Sl7Q==} - lodash.union@4.6.0: - resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==} - lodash@4.17.23: resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==} @@ -4699,10 +4710,6 @@ packages: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} engines: {node: '>=8'} - make-fetch-happen@10.2.1: - resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - make-fetch-happen@14.0.3: resolution: {integrity: sha512-QMjGbFTP0blj97EeidG5hk/QhKQ3T4ICckQGLgz38QF7Vgbk6e6FTARN8KhKxyBbWn8R0HU+bnw8aSoFPD4qtQ==} engines: {node: ^18.17.0 || >=20.5.0} @@ -4949,18 +4956,10 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - minipass-collect@1.0.2: - resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} - engines: {node: '>= 8'} - minipass-collect@2.0.1: resolution: {integrity: sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==} engines: {node: '>=16 || 14 >=14.17'} - minipass-fetch@2.1.2: - resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - minipass-fetch@4.0.1: resolution: {integrity: sha512-j7U11C5HXigVuutxebFadoYBbd7VSdZWggSe64NVdvWNBqGAiXPL2QVCehjmw7lY1oF9gOllYbORh+hiNgfPgQ==} engines: {node: ^18.17.0 || >=20.5.0} @@ -4997,11 +4996,22 @@ packages: resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} engines: {node: '>= 18'} + mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + + mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + mkdirp@1.0.4: resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} engines: {node: '>=10'} hasBin: true + moltbot@0.1.0: + resolution: {integrity: sha512-lJaI85TWhrDYmsaMXElp4EuvJpsdyaVpeoOnmOLXwOUPUUlwkJv7aAz+AlxFmwqtYP5wT95ZUCu16sfrM/VtiA==} + engines: {node: '>=24', pnpm: '>=10'} + motion-dom@12.34.2: resolution: {integrity: sha512-n7gknp7gHcW7DUcmet0JVPLVHmE3j9uWwDp5VbE3IkCNnW5qdu0mOhjNYzXMkrQjrgr+h6Db3EDM2QBhW2qNxQ==} @@ -5031,10 +5041,6 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - negotiator@0.6.4: - resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==} - engines: {node: '>= 0.6'} - negotiator@1.0.0: resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} engines: {node: '>= 0.6'} @@ -5043,10 +5049,6 @@ packages: resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} engines: {node: '>= 0.4.0'} - node-abi@3.87.0: - resolution: {integrity: sha512-+CGM1L1CgmtheLcBuleyYOn7NWPVu0s0EJH2C4puxgEZb9h8QpR9G2dBfZJOAUhi7VQxuBPMd0hiISWcTyiYyQ==} - engines: {node: '>=10'} - node-abi@4.26.0: resolution: {integrity: sha512-8QwIZqikRvDIkXS2S93LjzhsSPJuIbfaMETWH+Bx8oOT9Sa9UsUtBFQlc3gBNd1+QINjaTloitXr1W3dQLi9Iw==} engines: {node: '>=22.12.0'} @@ -5091,13 +5093,18 @@ packages: engines: {node: ^18.17.0 || >=20.5.0} hasBin: true - node-gyp@9.4.1: - resolution: {integrity: sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==} - engines: {node: ^12.13 || ^14.13 || >=16} + node-llama-cpp@3.15.0: + resolution: {integrity: sha512-xQKl+MvKiA5QNi/CTwqLKMos7hefhRVyzJuNIAEwl7zvOoF+gNMOXEsR4Ojwl7qvgpcjsVeGKWSK3Rb6zoUP1w==} + engines: {node: '>=20.0.0'} hasBin: true + peerDependencies: + typescript: '>=5.0.0' + peerDependenciesMeta: + typescript: + optional: true - node-llama-cpp@3.15.1: - resolution: {integrity: sha512-/fBNkuLGR2Q8xj2eeV12KXKZ9vCS2+o6aP11lW40pB9H6f0B3wOALi/liFrjhHukAoiH6C9wFTPzv6039+5DRA==} + node-llama-cpp@3.16.2: + resolution: {integrity: sha512-ovhuTaXSWfcoyfI8ljWxO2Rg63mNxqQQAbDGkXRhlgsL7UjPqm2Nsy1bTNa0ZaQRg3vezG4agnCJTImrICY/0A==} engines: {node: '>=20.0.0'} hasBin: true peerDependencies: @@ -5117,11 +5124,6 @@ packages: engines: {node: '>=6'} hasBin: true - nopt@6.0.0: - resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - hasBin: true - nopt@8.1.0: resolution: {integrity: sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==} engines: {node: ^18.17.0 || >=20.5.0} @@ -5248,10 +5250,6 @@ packages: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} - p-map@4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} - engines: {node: '>=10'} - p-map@7.0.4: resolution: {integrity: sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==} engines: {node: '>=18'} @@ -5393,6 +5391,11 @@ packages: resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} engines: {node: '>= 6'} + playwright-core@1.58.0: + resolution: {integrity: sha512-aaoB1RWrdNi3//rOeKuMiS65UCcgOVljU46At6eFcOFPFHWtd2weHRRow6z/n+Lec0Lvu0k9ZPKJSjPugikirw==} + engines: {node: '>=18'} + hasBin: true + playwright-core@1.58.2: resolution: {integrity: sha512-yZkEtftgwS8CsfYo7nm0KE8jsvm6i/PTgVtB8DL726wNf6H2IMsDuxCpJj59KDaxCtSnrWan2AeDqM7JBaultg==} engines: {node: '>=18'} @@ -5453,6 +5456,11 @@ packages: resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} + postject@1.0.0-alpha.6: + resolution: {integrity: sha512-b9Eb8h2eVqNE8edvKdwqkrY6O7kAwmI8kcnBv1NScolYJbo59XUF0noFq+lxbC1yN20bmC0WBEbDC5H/7ASb0A==} + engines: {node: '>=14.0.0'} + hasBin: true + prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -5504,14 +5512,6 @@ packages: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} - promise-inflight@1.0.1: - resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} - peerDependencies: - bluebird: '*' - peerDependenciesMeta: - bluebird: - optional: true - promise-retry@2.0.1: resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} engines: {node: '>=10'} @@ -5685,9 +5685,6 @@ packages: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} - readdir-glob@1.1.3: - resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} - readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} @@ -5759,6 +5756,11 @@ packages: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + rimraf@2.6.3: + resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} + 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 @@ -5910,14 +5912,14 @@ packages: resolution: {integrity: sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==} engines: {node: '>=18'} + slice-ansi@8.0.0: + resolution: {integrity: sha512-stxByr12oeeOyY2BlviTNQlYV5xOj47GirPr4yA1hE9JCtxfQN0+tVbkxwCtYDQWhEKWFHsEK48ORg5jrouCAg==} + engines: {node: '>=20'} + smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - socks-proxy-agent@7.0.0: - resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==} - engines: {node: '>= 10'} - socks-proxy-agent@8.0.5: resolution: {integrity: sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==} engines: {node: '>= 14'} @@ -5988,10 +5990,6 @@ packages: resolution: {integrity: sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==} engines: {node: ^18.17.0 || >=20.5.0} - ssri@9.0.1: - resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} @@ -6119,15 +6117,15 @@ packages: engines: {node: '>=14.0.0'} hasBin: true - tar-stream@2.2.0: - resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} - engines: {node: '>=6'} - tar@6.2.1: resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me + tar@7.5.4: + resolution: {integrity: sha512-AN04xbWGrSTDmVwlI4/GTlIIwMFk/XEv7uL8aa57zuvRy6s4hdBed+lVq2fAZ89XDa7Us3ANXcE3Tvqvja1kTA==} + engines: {node: '>=18'} + tar@7.5.9: resolution: {integrity: sha512-BTLcK0xsDh2+PUe9F6c2TlRp4zOOBMTkoQHQIWSIzI0R7KG46uEwq4OPk2W7bZcprBMsuaeFsqwYr7pjh6CuHg==} engines: {node: '>=18'} @@ -6135,6 +6133,10 @@ packages: temp-file@3.4.0: resolution: {integrity: sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==} + temp@0.9.4: + resolution: {integrity: sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==} + engines: {node: '>=6.0.0'} + thenify-all@1.6.0: resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} engines: {node: '>=0.8'} @@ -6283,18 +6285,10 @@ packages: unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} - unique-filename@2.0.1: - resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - unique-filename@4.0.0: resolution: {integrity: sha512-XSnEewXmQ+veP7xX2dS5Q4yZAvO40cBN2MWkJ7D/6sW4Dg6wYBNwM1Vrnz1FhH5AdeLIlUXRI9e28z1YZi71NQ==} engines: {node: ^18.17.0 || >=20.5.0} - unique-slug@3.0.0: - resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - unique-slug@5.0.0: resolution: {integrity: sha512-9OdaqO5kwqR+1kVgHAhsp5vPNU0hnxRa26rBFNfNgM7M6pNtgzeBn3s/xbyCQL3dcjzOatcef6UUHpB/6MaETg==} engines: {node: ^18.17.0 || >=20.5.0} @@ -6379,6 +6373,10 @@ packages: resolution: {integrity: sha512-IUoow1YUtvoBBC06dXs8bR8B9vuA3aJfmQNKMoaPG/OFsPmoQvw8xh+6Ye25Gx9DQhoEom3Pcu9MKHerm/NpUQ==} engines: {node: ^18.17.0 || >=20.5.0} + validate-npm-package-name@7.0.2: + resolution: {integrity: sha512-hVDIBwsRruT73PbK7uP5ebUt+ezEtCmzZz3F59BSr2F6OVFnJ/6h8liuvdLrQ88Xmnk6/+xGGuq+pG9WwTuy3A==} + engines: {node: ^20.17.0 || >=22.9.0} + vary@1.1.2: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} @@ -6524,6 +6522,11 @@ packages: engines: {node: ^18.17.0 || >=20.5.0} hasBin: true + which@6.0.1: + resolution: {integrity: sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==} + engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true + why-is-node-running@2.3.0: resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} engines: {node: '>=8'} @@ -6619,10 +6622,6 @@ packages: resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==} engines: {node: '>=18'} - zip-stream@4.1.1: - resolution: {integrity: sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==} - engines: {node: '>= 10'} - zod-to-json-schema@3.25.1: resolution: {integrity: sha512-pM/SU9d3YAggzi6MtR4h7ruuQlqKtad8e9S0fmxcMi+ueAK5Korys/aWcV9LIIHTVbj01NdzxcnXSN+O74ZIVA==} peerDependencies: @@ -6674,12 +6673,22 @@ snapshots: '@adobe/css-tools@4.4.4': {} + '@agentclientprotocol/sdk@0.13.1(zod@4.3.6)': + dependencies: + zod: 4.3.6 + '@agentclientprotocol/sdk@0.14.1(zod@4.3.6)': dependencies: zod: 4.3.6 '@alloc/quick-lru@5.2.0': {} + '@anthropic-ai/sdk@0.71.2(zod@4.3.6)': + dependencies: + json-schema-to-ts: 3.1.1 + optionalDependencies: + zod: 4.3.6 + '@anthropic-ai/sdk@0.73.0(zod@4.3.6)': dependencies: json-schema-to-ts: 3.1.1 @@ -7344,6 +7353,26 @@ snapshots: - opusscript - utf-8-validate + '@buape/carbon@0.14.0(@discordjs/opus@0.10.0(encoding@0.1.13))(hono@4.11.4)(opusscript@0.1.1)': + dependencies: + '@types/node': 25.3.0 + discord-api-types: 0.38.37 + optionalDependencies: + '@cloudflare/workers-types': 4.20260120.0 + '@discordjs/voice': 0.19.0(@discordjs/opus@0.10.0(encoding@0.1.13))(opusscript@0.1.1) + '@hono/node-server': 1.19.9(hono@4.11.4) + '@types/bun': 1.3.6 + '@types/ws': 8.18.1 + ws: 8.19.0 + transitivePeerDependencies: + - '@discordjs/opus' + - bufferutil + - ffmpeg-static + - hono + - node-opus + - opusscript + - utf-8-validate + '@cacheable/memory@2.0.7': dependencies: '@cacheable/utils': 2.3.4 @@ -7502,17 +7531,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@electron/osx-sign@1.3.1': - dependencies: - compare-version: 0.1.2 - debug: 4.4.3 - fs-extra: 10.1.0 - isbinaryfile: 4.0.10 - minimist: 1.2.8 - plist: 3.1.0 - transitivePeerDependencies: - - supports-color - '@electron/osx-sign@1.3.3': dependencies: compare-version: 0.1.2 @@ -7524,26 +7542,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@electron/rebuild@3.6.1': - dependencies: - '@malept/cross-spawn-promise': 2.0.0 - chalk: 4.1.2 - debug: 4.4.3 - detect-libc: 2.1.2 - fs-extra: 10.1.0 - got: 11.8.6 - node-abi: 3.87.0 - node-api-version: 0.2.1 - node-gyp: 9.4.1 - ora: 5.4.1 - read-binary-file-arch: 1.0.6 - semver: 7.7.4 - tar: 6.2.1 - yargs: 17.7.2 - transitivePeerDependencies: - - bluebird - - supports-color - '@electron/rebuild@4.0.3': dependencies: '@malept/cross-spawn-promise': 2.0.0 @@ -7562,18 +7560,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@electron/universal@2.0.1': - dependencies: - '@electron/asar': 3.4.1 - '@malept/cross-spawn-promise': 2.0.0 - debug: 4.4.3 - dir-compare: 4.2.0 - fs-extra: 11.3.3 - minimatch: 9.0.5 - plist: 3.1.0 - transitivePeerDependencies: - - supports-color - '@electron/universal@2.0.3': dependencies: '@electron/asar': 3.4.1 @@ -7586,6 +7572,17 @@ snapshots: transitivePeerDependencies: - supports-color + '@electron/windows-sign@1.2.2': + dependencies: + cross-dirname: 0.1.0 + debug: 4.4.3 + fs-extra: 11.3.3 + minimist: 1.2.8 + postject: 1.0.0-alpha.6 + transitivePeerDependencies: + - supports-color + optional: true + '@emnapi/core@1.8.1': dependencies: '@emnapi/wasi-threads': 1.1.0 @@ -7733,7 +7730,14 @@ snapshots: '@floating-ui/utils@0.2.10': {} - '@gar/promisify@1.1.3': {} + '@google/genai@1.34.0': + dependencies: + google-auth-library: 10.6.1 + ws: 8.19.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate '@google/genai@1.42.0': dependencies: @@ -7773,6 +7777,11 @@ snapshots: transitivePeerDependencies: - supports-color + '@hono/node-server@1.19.9(hono@4.11.4)': + dependencies: + hono: 4.11.4 + optional: true + '@hono/node-server@1.19.9(hono@4.11.8)': dependencies: hono: 4.11.8 @@ -7896,6 +7905,8 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 + '@isaacs/cliui@9.0.0': {} + '@isaacs/fs-minipass@4.0.1': dependencies: minipass: 7.1.3 @@ -8039,13 +8050,25 @@ snapshots: '@mariozechner/clipboard-linux-x64-musl': 0.3.2 '@mariozechner/clipboard-win32-arm64-msvc': 0.3.2 '@mariozechner/clipboard-win32-x64-msvc': 0.3.2 - optional: true '@mariozechner/jiti@2.6.5': dependencies: std-env: 3.10.0 yoctocolors: 2.1.2 + '@mariozechner/pi-agent-core@0.49.3(ws@8.19.0)(zod@4.3.6)': + dependencies: + '@mariozechner/pi-ai': 0.49.3(ws@8.19.0)(zod@4.3.6) + '@mariozechner/pi-tui': 0.49.3 + transitivePeerDependencies: + - '@modelcontextprotocol/sdk' + - aws-crt + - bufferutil + - supports-color + - utf-8-validate + - ws + - zod + '@mariozechner/pi-agent-core@0.55.3(ws@8.19.0)(zod@4.3.6)': dependencies: '@mariozechner/pi-ai': 0.55.3(ws@8.19.0)(zod@4.3.6) @@ -8058,6 +8081,28 @@ snapshots: - ws - zod + '@mariozechner/pi-ai@0.49.3(ws@8.19.0)(zod@4.3.6)': + dependencies: + '@anthropic-ai/sdk': 0.71.2(zod@4.3.6) + '@aws-sdk/client-bedrock-runtime': 3.994.0 + '@google/genai': 1.34.0 + '@mistralai/mistralai': 1.10.0 + '@sinclair/typebox': 0.34.48 + ajv: 8.18.0 + ajv-formats: 3.0.1(ajv@8.18.0) + chalk: 5.6.2 + openai: 6.10.0(ws@8.19.0)(zod@4.3.6) + partial-json: 0.1.7 + zod-to-json-schema: 3.25.1(zod@4.3.6) + transitivePeerDependencies: + - '@modelcontextprotocol/sdk' + - aws-crt + - bufferutil + - supports-color + - utf-8-validate + - ws + - zod + '@mariozechner/pi-ai@0.55.3(ws@8.19.0)(zod@4.3.6)': dependencies: '@anthropic-ai/sdk': 0.73.0(zod@4.3.6) @@ -8082,6 +8127,32 @@ snapshots: - ws - zod + '@mariozechner/pi-coding-agent@0.49.3(ws@8.19.0)(zod@4.3.6)': + dependencies: + '@mariozechner/clipboard': 0.3.2 + '@mariozechner/jiti': 2.6.5 + '@mariozechner/pi-agent-core': 0.49.3(ws@8.19.0)(zod@4.3.6) + '@mariozechner/pi-ai': 0.49.3(ws@8.19.0)(zod@4.3.6) + '@mariozechner/pi-tui': 0.49.3 + '@silvia-odwyer/photon-node': 0.3.4 + chalk: 5.6.2 + cli-highlight: 2.1.11 + diff: 8.0.3 + file-type: 21.3.0 + glob: 11.1.0 + marked: 15.0.12 + minimatch: 10.2.4 + proper-lockfile: 4.1.2 + yaml: 2.8.2 + transitivePeerDependencies: + - '@modelcontextprotocol/sdk' + - aws-crt + - bufferutil + - supports-color + - utf-8-validate + - ws + - zod + '@mariozechner/pi-coding-agent@0.55.3(ws@8.19.0)(zod@4.3.6)': dependencies: '@mariozechner/jiti': 2.6.5 @@ -8112,6 +8183,14 @@ snapshots: - ws - zod + '@mariozechner/pi-tui@0.49.3': + dependencies: + '@types/mime-types': 2.1.4 + chalk: 5.6.2 + get-east-asian-width: 1.5.0 + marked: 15.0.12 + mime-types: 3.0.2 + '@mariozechner/pi-tui@0.55.3': dependencies: '@types/mime-types': 2.1.4 @@ -8182,43 +8261,52 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true - '@node-llama-cpp/linux-arm64@3.15.1': + '@node-llama-cpp/linux-arm64@3.15.0': optional: true - '@node-llama-cpp/linux-armv7l@3.15.1': + '@node-llama-cpp/linux-arm64@3.16.2': optional: true - '@node-llama-cpp/linux-x64-cuda-ext@3.15.1': + '@node-llama-cpp/linux-armv7l@3.15.0': optional: true - '@node-llama-cpp/linux-x64-cuda@3.15.1': + '@node-llama-cpp/linux-armv7l@3.16.2': optional: true - '@node-llama-cpp/linux-x64-vulkan@3.15.1': + '@node-llama-cpp/linux-x64-vulkan@3.15.0': optional: true - '@node-llama-cpp/linux-x64@3.15.1': + '@node-llama-cpp/linux-x64-vulkan@3.16.2': optional: true - '@node-llama-cpp/mac-arm64-metal@3.15.1': + '@node-llama-cpp/linux-x64@3.15.0': optional: true - '@node-llama-cpp/mac-x64@3.15.1': + '@node-llama-cpp/linux-x64@3.16.2': optional: true - '@node-llama-cpp/win-arm64@3.15.1': + '@node-llama-cpp/mac-arm64-metal@3.15.0': optional: true - '@node-llama-cpp/win-x64-cuda-ext@3.15.1': + '@node-llama-cpp/mac-arm64-metal@3.16.2': optional: true - '@node-llama-cpp/win-x64-cuda@3.15.1': + '@node-llama-cpp/mac-x64@3.15.0': optional: true - '@node-llama-cpp/win-x64-vulkan@3.15.1': + '@node-llama-cpp/mac-x64@3.16.2': optional: true - '@node-llama-cpp/win-x64@3.15.1': + '@node-llama-cpp/win-arm64@3.15.0': + optional: true + + '@node-llama-cpp/win-arm64@3.16.2': + optional: true + + '@node-llama-cpp/win-x64@3.15.0': + optional: true + + '@node-llama-cpp/win-x64@3.16.2': optional: true '@nodelib/fs.scandir@2.1.5': @@ -8245,20 +8333,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@npmcli/fs@2.1.2': - dependencies: - '@gar/promisify': 1.1.3 - semver: 7.7.4 - '@npmcli/fs@4.0.0': dependencies: semver: 7.7.4 - '@npmcli/move-file@2.0.1': - dependencies: - mkdirp: 1.0.4 - rimraf: 3.0.2 - '@octokit/app@16.1.2': dependencies: '@octokit/auth-app': 8.2.0 @@ -8996,6 +9074,8 @@ snapshots: '@silvia-odwyer/photon-node@0.3.4': {} + '@sinclair/typebox@0.34.47': {} + '@sinclair/typebox@0.34.48': {} '@sindresorhus/is@4.6.0': {} @@ -9065,6 +9145,12 @@ snapshots: transitivePeerDependencies: - debug + '@sliverp/qqbot@1.5.4(clawdbot@2026.1.24-3(@discordjs/opus@0.10.0(encoding@0.1.13))(@types/express@5.0.6)(devtools-protocol@0.0.1595872)(encoding@0.1.13)(opusscript@0.1.1)(typescript@5.9.3))(moltbot@0.1.0)(openclaw@2026.3.1(@napi-rs/canvas@0.1.95)(@types/express@5.0.6)(encoding@0.1.13)(hono@4.11.8)(node-llama-cpp@3.16.2(typescript@5.9.3)))': + dependencies: + clawdbot: 2026.1.24-3(@discordjs/opus@0.10.0(encoding@0.1.13))(@types/express@5.0.6)(devtools-protocol@0.0.1595872)(encoding@0.1.13)(opusscript@0.1.1)(typescript@5.9.3) + moltbot: 0.1.0 + openclaw: 2026.3.1(@napi-rs/canvas@0.1.95)(@types/express@5.0.6)(encoding@0.1.13)(hono@4.11.8)(node-llama-cpp@3.16.2(typescript@5.9.3)) + '@smithy/abort-controller@4.2.10': dependencies: '@smithy/types': 4.13.0 @@ -9430,12 +9516,12 @@ snapshots: '@snazzah/davey-win32-ia32-msvc': 0.1.9 '@snazzah/davey-win32-x64-msvc': 0.1.9 - '@soimy/dingtalk@3.1.4(openclaw@2026.3.1(@napi-rs/canvas@0.1.95)(@types/express@5.0.6)(encoding@0.1.13)(hono@4.11.8)(node-llama-cpp@3.15.1(typescript@5.9.3)))': + '@soimy/dingtalk@3.1.4(openclaw@2026.3.1(@napi-rs/canvas@0.1.95)(@types/express@5.0.6)(encoding@0.1.13)(hono@4.11.8)(node-llama-cpp@3.16.2(typescript@5.9.3)))': dependencies: axios: 1.13.5(debug@4.4.3) dingtalk-stream: 2.1.4 form-data: 4.0.5 - openclaw: 2026.3.1(@napi-rs/canvas@0.1.95)(@types/express@5.0.6)(encoding@0.1.13)(hono@4.11.8)(node-llama-cpp@3.15.1(typescript@5.9.3)) + openclaw: 2026.3.1(@napi-rs/canvas@0.1.95)(@types/express@5.0.6)(encoding@0.1.13)(hono@4.11.8)(node-llama-cpp@3.16.2(typescript@5.9.3)) zod: 4.3.6 transitivePeerDependencies: - bufferutil @@ -9490,8 +9576,6 @@ snapshots: '@tokenizer/token@0.3.0': {} - '@tootallnate/once@2.0.0': {} - '@tootallnate/quickjs-emscripten@0.23.0': {} '@tybys/wasm-util@0.10.1': @@ -9529,6 +9613,11 @@ snapshots: '@types/connect': 3.4.38 '@types/node': 25.3.0 + '@types/bun@1.3.6': + dependencies: + bun-types: 1.3.6 + optional: true + '@types/bun@1.3.9': dependencies: bun-types: 1.3.9 @@ -9858,7 +9947,8 @@ snapshots: '@xmldom/xmldom@0.8.11': {} - abbrev@1.1.1: {} + abbrev@1.1.1: + optional: true abbrev@3.0.1: {} @@ -9882,18 +9972,10 @@ snapshots: debug: 4.4.3 transitivePeerDependencies: - supports-color + optional: true agent-base@7.1.4: {} - agentkeepalive@4.6.0: - dependencies: - humanize-ms: 1.2.1 - - aggregate-error@3.1.0: - dependencies: - clean-stack: 2.2.0 - indent-string: 4.0.0 - ajv-formats@3.0.1(ajv@8.18.0): optionalDependencies: ajv: 8.18.0 @@ -9937,51 +10019,9 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.1 - app-builder-bin@5.0.0-alpha.10: {} - app-builder-bin@5.0.0-alpha.12: {} - app-builder-lib@25.1.8(dmg-builder@26.8.1)(electron-builder-squirrel-windows@25.1.8): - dependencies: - '@develar/schema-utils': 2.6.5 - '@electron/notarize': 2.5.0 - '@electron/osx-sign': 1.3.1 - '@electron/rebuild': 3.6.1 - '@electron/universal': 2.0.1 - '@malept/flatpak-bundler': 0.4.0 - '@types/fs-extra': 9.0.13 - async-exit-hook: 2.0.1 - bluebird-lst: 1.0.9 - builder-util: 25.1.7 - builder-util-runtime: 9.2.10 - chromium-pickle-js: 0.2.0 - config-file-ts: 0.2.8-rc1 - debug: 4.4.3 - dmg-builder: 26.8.1(electron-builder-squirrel-windows@25.1.8) - dotenv: 16.6.1 - dotenv-expand: 11.0.7 - ejs: 3.1.10 - electron-builder-squirrel-windows: 25.1.8(dmg-builder@26.8.1) - electron-publish: 25.1.7 - form-data: 4.0.5 - fs-extra: 10.1.0 - hosted-git-info: 4.1.0 - is-ci: 3.0.1 - isbinaryfile: 5.0.7 - js-yaml: 4.1.1 - json5: 2.2.3 - lazy-val: 1.0.5 - minimatch: 10.2.4 - resedit: 1.7.2 - sanitize-filename: 1.6.3 - semver: 7.7.4 - tar: 6.2.1 - temp-file: 3.4.0 - transitivePeerDependencies: - - bluebird - - supports-color - - app-builder-lib@26.8.1(dmg-builder@26.8.1)(electron-builder-squirrel-windows@25.1.8): + app-builder-lib@26.8.1(dmg-builder@26.8.1)(electron-builder-squirrel-windows@26.8.1): dependencies: '@develar/schema-utils': 2.6.5 '@electron/asar': 3.4.1 @@ -9999,11 +10039,11 @@ snapshots: chromium-pickle-js: 0.2.0 ci-info: 4.3.1 debug: 4.4.3 - dmg-builder: 26.8.1(electron-builder-squirrel-windows@25.1.8) + dmg-builder: 26.8.1(electron-builder-squirrel-windows@26.8.1) dotenv: 16.6.1 dotenv-expand: 11.0.7 ejs: 3.1.10 - electron-builder-squirrel-windows: 25.1.8(dmg-builder@26.8.1) + electron-builder-squirrel-windows: 26.8.1(dmg-builder@26.8.1) electron-publish: 26.8.1 fs-extra: 10.1.0 hosted-git-info: 4.1.0 @@ -10024,43 +10064,8 @@ snapshots: transitivePeerDependencies: - supports-color - aproba@2.1.0: {} - - archiver-utils@2.1.0: - dependencies: - glob: 7.2.3 - graceful-fs: 4.2.11 - lazystream: 1.0.1 - lodash.defaults: 4.2.0 - lodash.difference: 4.5.0 - lodash.flatten: 4.4.0 - lodash.isplainobject: 4.0.6 - lodash.union: 4.6.0 - normalize-path: 3.0.0 - readable-stream: 2.3.8 - - archiver-utils@3.0.4: - dependencies: - glob: 7.2.3 - graceful-fs: 4.2.11 - lazystream: 1.0.1 - lodash.defaults: 4.2.0 - lodash.difference: 4.5.0 - lodash.flatten: 4.4.0 - lodash.isplainobject: 4.0.6 - lodash.union: 4.6.0 - normalize-path: 3.0.0 - readable-stream: 3.6.2 - - archiver@5.3.2: - dependencies: - archiver-utils: 2.1.0 - async: 3.2.6 - buffer-crc32: 0.2.13 - readable-stream: 3.6.2 - readdir-glob: 1.1.3 - tar-stream: 2.2.0 - zip-stream: 4.1.1 + aproba@2.1.0: + optional: true are-we-there-yet@2.0.0: dependencies: @@ -10072,6 +10077,7 @@ snapshots: dependencies: delegates: 1.0.0 readable-stream: 3.6.2 + optional: true arg@5.0.2: {} @@ -10177,12 +10183,6 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 - bluebird-lst@1.0.9: - dependencies: - bluebird: 3.7.2 - - bluebird@3.7.2: {} - body-parser@2.2.2: dependencies: bytes: 3.1.2 @@ -10242,13 +10242,6 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 - builder-util-runtime@9.2.10: - dependencies: - debug: 4.4.3 - sax: 1.4.4 - transitivePeerDependencies: - - supports-color - builder-util-runtime@9.5.1: dependencies: debug: 4.4.3 @@ -10256,27 +10249,6 @@ snapshots: transitivePeerDependencies: - supports-color - builder-util@25.1.7: - dependencies: - 7zip-bin: 5.2.0 - '@types/debug': 4.1.12 - app-builder-bin: 5.0.0-alpha.10 - bluebird-lst: 1.0.9 - builder-util-runtime: 9.2.10 - chalk: 4.1.2 - cross-spawn: 7.0.6 - debug: 4.4.3 - fs-extra: 10.1.0 - http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6 - is-ci: 3.0.1 - js-yaml: 4.1.1 - source-map-support: 0.5.21 - stat-mode: 1.0.0 - temp-file: 3.4.0 - transitivePeerDependencies: - - supports-color - builder-util@26.8.1: dependencies: 7zip-bin: 5.2.0 @@ -10298,6 +10270,11 @@ snapshots: transitivePeerDependencies: - supports-color + bun-types@1.3.6: + dependencies: + '@types/node': 25.3.0 + optional: true + bun-types@1.3.9: dependencies: '@types/node': 25.3.0 @@ -10305,29 +10282,6 @@ snapshots: bytes@3.1.2: {} - cacache@16.1.3: - dependencies: - '@npmcli/fs': 2.1.2 - '@npmcli/move-file': 2.0.1 - chownr: 2.0.0 - fs-minipass: 2.1.0 - glob: 8.1.0 - infer-owner: 1.0.4 - lru-cache: 7.18.3 - minipass: 3.3.6 - minipass-collect: 1.0.2 - minipass-flush: 1.0.5 - minipass-pipeline: 1.2.4 - mkdirp: 1.0.4 - p-map: 4.0.0 - promise-inflight: 1.0.1 - rimraf: 3.0.2 - ssri: 9.0.1 - tar: 6.2.1 - unique-filename: 2.0.1 - transitivePeerDependencies: - - bluebird - cacache@19.0.1: dependencies: '@npmcli/fs': 4.0.0 @@ -10414,13 +10368,18 @@ snapshots: dependencies: readdirp: 5.0.0 - chownr@2.0.0: {} + chownr@2.0.0: + optional: true chownr@3.0.0: {} - chromium-pickle-js@0.2.0: {} + chromium-bidi@13.0.1(devtools-protocol@0.0.1595872): + dependencies: + devtools-protocol: 0.0.1595872 + mitt: 3.0.1 + zod: 3.25.76 - ci-info@3.9.0: {} + chromium-pickle-js@0.2.0: {} ci-info@4.3.1: {} @@ -10430,6 +10389,84 @@ snapshots: dependencies: clsx: 2.1.1 + clawdbot@2026.1.24-3(@discordjs/opus@0.10.0(encoding@0.1.13))(@types/express@5.0.6)(devtools-protocol@0.0.1595872)(encoding@0.1.13)(opusscript@0.1.1)(typescript@5.9.3): + dependencies: + '@agentclientprotocol/sdk': 0.13.1(zod@4.3.6) + '@aws-sdk/client-bedrock': 3.1000.0 + '@buape/carbon': 0.14.0(@discordjs/opus@0.10.0(encoding@0.1.13))(hono@4.11.4)(opusscript@0.1.1) + '@clack/prompts': 0.11.0 + '@grammyjs/runner': 2.0.3(grammy@1.41.0(encoding@0.1.13)) + '@grammyjs/transformer-throttler': 1.2.1(grammy@1.41.0(encoding@0.1.13)) + '@homebridge/ciao': 1.3.5 + '@line/bot-sdk': 10.6.0 + '@lydell/node-pty': 1.2.0-beta.3 + '@mariozechner/pi-agent-core': 0.49.3(ws@8.19.0)(zod@4.3.6) + '@mariozechner/pi-ai': 0.49.3(ws@8.19.0)(zod@4.3.6) + '@mariozechner/pi-coding-agent': 0.49.3(ws@8.19.0)(zod@4.3.6) + '@mariozechner/pi-tui': 0.49.3 + '@mozilla/readability': 0.6.0 + '@sinclair/typebox': 0.34.47 + '@slack/bolt': 4.6.0(@types/express@5.0.6) + '@slack/web-api': 7.14.1 + '@whiskeysockets/baileys': 7.0.0-rc.9(sharp@0.34.5) + ajv: 8.18.0 + body-parser: 2.2.2 + chalk: 5.6.2 + chokidar: 5.0.0 + chromium-bidi: 13.0.1(devtools-protocol@0.0.1595872) + cli-highlight: 2.1.11 + commander: 14.0.3 + croner: 9.1.0 + detect-libc: 2.1.2 + discord-api-types: 0.38.40 + dotenv: 17.3.1 + express: 5.2.1 + file-type: 21.3.0 + grammy: 1.41.0(encoding@0.1.13) + hono: 4.11.4 + 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 + node-edge-tts: 1.2.10 + osc-progress: 0.3.0 + pdfjs-dist: 5.5.207 + playwright-core: 1.58.0 + proper-lockfile: 4.1.2 + qrcode-terminal: 0.12.0 + sharp: 0.34.5 + sqlite-vec: 0.1.7-alpha.2 + tar: 7.5.4 + tslog: 4.10.2 + undici: 7.22.0 + ws: 8.19.0 + yaml: 2.8.2 + zod: 4.3.6 + optionalDependencies: + '@napi-rs/canvas': 0.1.95 + node-llama-cpp: 3.15.0(typescript@5.9.3) + transitivePeerDependencies: + - '@discordjs/opus' + - '@modelcontextprotocol/sdk' + - '@types/express' + - audio-decode + - aws-crt + - bufferutil + - canvas + - debug + - devtools-protocol + - encoding + - ffmpeg-static + - jimp + - link-preview-js + - node-opus + - opusscript + - supports-color + - typescript + - utf-8-validate + clawhub@0.5.0: dependencies: '@clack/prompts': 0.11.0 @@ -10444,8 +10481,6 @@ snapshots: semver: 7.7.4 undici: 7.22.0 - clean-stack@2.2.0: {} - cli-cursor@3.1.0: dependencies: restore-cursor: 3.1.0 @@ -10509,6 +10544,21 @@ snapshots: yargs: 17.7.2 transitivePeerDependencies: - supports-color + optional: true + + cmake-js@8.0.0: + dependencies: + debug: 4.4.3 + fs-extra: 11.3.3 + node-api-headers: 1.8.0 + rc: 1.2.8 + semver: 7.7.4 + tar: 7.5.9 + url-join: 4.0.1 + which: 6.0.1 + yargs: 17.7.2 + transitivePeerDependencies: + - supports-color color-convert@2.0.1: dependencies: @@ -10516,7 +10566,8 @@ snapshots: color-name@1.1.4: {} - color-support@1.1.3: {} + color-support@1.1.3: + optional: true combined-stream@1.0.8: dependencies: @@ -10532,14 +10583,10 @@ snapshots: commander@5.1.0: {} - compare-version@0.1.2: {} + commander@9.5.0: + optional: true - compress-commons@4.1.2: - dependencies: - buffer-crc32: 0.2.13 - crc32-stream: 4.0.3 - normalize-path: 3.0.0 - readable-stream: 3.6.2 + compare-version@0.1.2: {} concat-map@0.0.1: {} @@ -10555,12 +10602,8 @@ snapshots: semver: 7.7.4 uint8array-extras: 1.5.0 - config-file-ts@0.2.8-rc1: - dependencies: - glob: 10.4.5 - typescript: 5.9.3 - - console-control-strings@1.1.0: {} + console-control-strings@1.1.0: + optional: true content-disposition@1.0.1: {} @@ -10579,13 +10622,6 @@ snapshots: core-util-is@1.0.3: {} - crc-32@1.2.2: {} - - crc32-stream@4.0.3: - dependencies: - crc-32: 1.2.2 - readable-stream: 3.6.2 - crc@3.8.0: dependencies: buffer: 5.7.1 @@ -10593,6 +10629,11 @@ snapshots: croner@10.0.1: {} + croner@9.1.0: {} + + cross-dirname@0.1.0: + optional: true + cross-spawn@7.0.6: dependencies: path-key: 3.1.1 @@ -10692,7 +10733,8 @@ snapshots: delayed-stream@1.0.0: {} - delegates@1.0.0: {} + delegates@1.0.0: + optional: true depd@2.0.0: {} @@ -10709,6 +10751,8 @@ snapshots: dependencies: dequal: 2.0.3 + devtools-protocol@0.0.1595872: {} + didyoumean@1.2.2: {} diff@8.0.3: {} @@ -10734,9 +10778,9 @@ snapshots: dlv@1.1.3: {} - dmg-builder@26.8.1(electron-builder-squirrel-windows@25.1.8): + dmg-builder@26.8.1(electron-builder-squirrel-windows@26.8.1): dependencies: - app-builder-lib: 26.8.1(dmg-builder@26.8.1)(electron-builder-squirrel-windows@25.1.8) + app-builder-lib: 26.8.1(dmg-builder@26.8.1)(electron-builder-squirrel-windows@26.8.1) builder-util: 26.8.1 fs-extra: 10.1.0 iconv-lite: 0.6.3 @@ -10811,25 +10855,23 @@ snapshots: dependencies: jake: 10.9.4 - electron-builder-squirrel-windows@25.1.8(dmg-builder@26.8.1): + electron-builder-squirrel-windows@26.8.1(dmg-builder@26.8.1): dependencies: - app-builder-lib: 25.1.8(dmg-builder@26.8.1)(electron-builder-squirrel-windows@25.1.8) - archiver: 5.3.2 - builder-util: 25.1.7 - fs-extra: 10.1.0 + app-builder-lib: 26.8.1(dmg-builder@26.8.1)(electron-builder-squirrel-windows@26.8.1) + builder-util: 26.8.1 + electron-winstaller: 5.4.0 transitivePeerDependencies: - - bluebird - dmg-builder - supports-color - electron-builder@26.8.1(electron-builder-squirrel-windows@25.1.8): + electron-builder@26.8.1(electron-builder-squirrel-windows@26.8.1): dependencies: - app-builder-lib: 26.8.1(dmg-builder@26.8.1)(electron-builder-squirrel-windows@25.1.8) + app-builder-lib: 26.8.1(dmg-builder@26.8.1)(electron-builder-squirrel-windows@26.8.1) builder-util: 26.8.1 builder-util-runtime: 9.5.1 chalk: 4.1.2 ci-info: 4.4.0 - dmg-builder: 26.8.1(electron-builder-squirrel-windows@25.1.8) + dmg-builder: 26.8.1(electron-builder-squirrel-windows@26.8.1) fs-extra: 10.1.0 lazy-val: 1.0.5 simple-update-notifier: 2.0.0 @@ -10838,18 +10880,6 @@ snapshots: - electron-builder-squirrel-windows - supports-color - electron-publish@25.1.7: - dependencies: - '@types/fs-extra': 9.0.13 - builder-util: 25.1.7 - builder-util-runtime: 9.2.10 - chalk: 4.1.2 - fs-extra: 10.1.0 - lazy-val: 1.0.5 - mime: 2.6.0 - transitivePeerDependencies: - - supports-color - electron-publish@26.8.1: dependencies: '@types/fs-extra': 9.0.13 @@ -10883,6 +10913,18 @@ snapshots: transitivePeerDependencies: - supports-color + electron-winstaller@5.4.0: + dependencies: + '@electron/asar': 3.4.1 + debug: 4.4.3 + fs-extra: 7.0.1 + lodash: 4.17.23 + temp: 0.9.4 + optionalDependencies: + '@electron/windows-sign': 1.2.2 + transitivePeerDependencies: + - supports-color + electron@40.6.0: dependencies: '@electron/get': 2.0.3 @@ -11263,8 +11305,6 @@ snapshots: fresh@2.0.0: {} - fs-constants@1.0.0: {} - fs-extra@10.1.0: dependencies: graceful-fs: 4.2.11 @@ -11277,6 +11317,12 @@ snapshots: jsonfile: 6.2.0 universalify: 2.0.1 + fs-extra@7.0.1: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + fs-extra@8.1.0: dependencies: graceful-fs: 4.2.11 @@ -11293,6 +11339,7 @@ snapshots: fs-minipass@2.1.0: dependencies: minipass: 3.3.6 + optional: true fs-minipass@3.0.3: dependencies: @@ -11328,6 +11375,7 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 wide-align: 1.1.5 + optional: true gaxios@7.1.3: dependencies: @@ -11401,6 +11449,15 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 1.11.1 + glob@11.1.0: + dependencies: + foreground-child: 3.3.1 + jackspeak: 4.2.3 + minimatch: 10.2.4 + minipass: 7.1.3 + package-json-from-dist: 1.0.1 + path-scurry: 2.0.2 + glob@13.0.6: dependencies: minimatch: 10.2.4 @@ -11416,14 +11473,6 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 - glob@8.1.0: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 5.1.6 - once: 1.4.0 - global-agent@3.0.0: dependencies: boolean: 3.2.0 @@ -11496,7 +11545,8 @@ snapshots: dependencies: has-symbols: 1.1.0 - has-unicode@2.0.1: {} + has-unicode@2.0.1: + optional: true hashery@1.5.0: dependencies: @@ -11538,6 +11588,8 @@ snapshots: highlight.js@10.7.3: {} + hono@4.11.4: {} + hono@4.11.8: optional: true @@ -11582,14 +11634,6 @@ snapshots: statuses: 2.0.2 toidentifier: 1.0.1 - http-proxy-agent@5.0.0: - dependencies: - '@tootallnate/once': 2.0.0 - agent-base: 6.0.2 - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.4 @@ -11608,6 +11652,7 @@ snapshots: debug: 4.4.3 transitivePeerDependencies: - supports-color + optional: true https-proxy-agent@7.0.6: dependencies: @@ -11616,10 +11661,6 @@ snapshots: transitivePeerDependencies: - supports-color - humanize-ms@1.2.1: - dependencies: - ms: 2.1.3 - i18next@25.8.11(typescript@5.9.3): dependencies: '@babel/runtime': 7.28.6 @@ -11652,8 +11693,6 @@ snapshots: indent-string@4.0.0: {} - infer-owner@1.0.4: {} - inflight@1.0.6: dependencies: once: 1.4.0 @@ -11694,6 +11733,31 @@ snapshots: strip-ansi: 7.1.2 optionalDependencies: '@reflink/reflink': 0.1.19 + optional: true + + ipull@3.9.5: + dependencies: + '@tinyhttp/content-disposition': 2.2.4 + async-retry: 1.3.3 + chalk: 5.6.2 + ci-info: 4.4.0 + cli-spinners: 2.9.2 + commander: 10.0.1 + eventemitter3: 5.0.4 + filenamify: 6.0.0 + fs-extra: 11.3.3 + is-unicode-supported: 2.1.0 + lifecycle-utils: 2.1.0 + lodash.debounce: 4.0.8 + lowdb: 7.0.1 + pretty-bytes: 6.1.1 + pretty-ms: 8.0.0 + sleep-promise: 9.1.0 + slice-ansi: 7.1.2 + stdout-update: 4.0.1 + strip-ansi: 7.1.2 + optionalDependencies: + '@reflink/reflink': 0.1.19 is-alphabetical@2.0.1: {} @@ -11706,10 +11770,6 @@ snapshots: dependencies: binary-extensions: 2.3.0 - is-ci@3.0.1: - dependencies: - ci-info: 3.9.0 - is-core-module@2.16.1: dependencies: hasown: 2.0.2 @@ -11736,8 +11796,6 @@ snapshots: is-interactive@2.0.0: {} - is-lambda@1.0.1: {} - is-network-error@1.3.0: {} is-number@7.0.0: {} @@ -11752,7 +11810,8 @@ snapshots: is-unicode-supported@0.1.0: {} - is-unicode-supported@1.3.0: {} + is-unicode-supported@1.3.0: + optional: true is-unicode-supported@2.1.0: {} @@ -11766,12 +11825,18 @@ snapshots: isexe@3.1.5: {} + isexe@4.0.0: {} + jackspeak@3.4.3: dependencies: '@isaacs/cliui': 8.0.2 optionalDependencies: '@pkgjs/parseargs': 0.11.0 + jackspeak@4.2.3: + dependencies: + '@isaacs/cliui': 9.0.0 + jake@10.9.4: dependencies: async: 3.2.6 @@ -11894,10 +11959,6 @@ snapshots: lazy-val@1.0.5: {} - lazystream@1.0.1: - dependencies: - readable-stream: 2.3.8 - levn@0.4.1: dependencies: prelude-ls: 1.2.1 @@ -11933,14 +11994,8 @@ snapshots: lodash.debounce@4.0.8: {} - lodash.defaults@4.2.0: {} - - lodash.difference@4.5.0: {} - lodash.escaperegexp@4.1.2: {} - lodash.flatten@4.4.0: {} - lodash.identity@3.0.0: {} lodash.includes@4.3.0: {} @@ -11963,8 +12018,6 @@ snapshots: lodash.pickby@4.6.0: {} - lodash.union@4.6.0: {} - lodash@4.17.23: {} log-symbols@4.1.0: @@ -11976,6 +12029,7 @@ snapshots: dependencies: chalk: 5.6.2 is-unicode-supported: 1.3.0 + optional: true log-symbols@7.0.1: dependencies: @@ -12023,28 +12077,6 @@ snapshots: semver: 6.3.1 optional: true - make-fetch-happen@10.2.1: - dependencies: - agentkeepalive: 4.6.0 - cacache: 16.1.3 - http-cache-semantics: 4.2.0 - http-proxy-agent: 5.0.0 - https-proxy-agent: 5.0.1 - is-lambda: 1.0.1 - lru-cache: 7.18.3 - minipass: 3.3.6 - minipass-collect: 1.0.2 - minipass-fetch: 2.1.2 - minipass-flush: 1.0.5 - minipass-pipeline: 1.2.4 - negotiator: 0.6.4 - promise-retry: 2.0.1 - socks-proxy-agent: 7.0.0 - ssri: 9.0.1 - transitivePeerDependencies: - - bluebird - - supports-color - make-fetch-happen@14.0.3: dependencies: '@npmcli/agent': 3.0.0 @@ -12243,6 +12275,7 @@ snapshots: memory-stream@1.0.0: dependencies: readable-stream: 3.6.2 + optional: true merge-descriptors@2.0.0: {} @@ -12492,22 +12525,10 @@ snapshots: minimist@1.2.8: {} - minipass-collect@1.0.2: - dependencies: - minipass: 3.3.6 - minipass-collect@2.0.1: dependencies: minipass: 7.1.3 - minipass-fetch@2.1.2: - dependencies: - minipass: 3.3.6 - minipass-sized: 1.0.3 - minizlib: 2.1.2 - optionalDependencies: - encoding: 0.1.13 - minipass-fetch@4.0.1: dependencies: minipass: 7.1.3 @@ -12532,7 +12553,8 @@ snapshots: dependencies: yallist: 4.0.0 - minipass@5.0.0: {} + minipass@5.0.0: + optional: true minipass@7.1.3: {} @@ -12540,12 +12562,22 @@ snapshots: dependencies: minipass: 3.3.6 yallist: 4.0.0 + optional: true minizlib@3.1.0: dependencies: minipass: 7.1.3 - mkdirp@1.0.4: {} + mitt@3.0.1: {} + + mkdirp@0.5.6: + dependencies: + minimist: 1.2.8 + + mkdirp@1.0.4: + optional: true + + moltbot@0.1.0: {} motion-dom@12.34.2: dependencies: @@ -12582,16 +12614,10 @@ snapshots: natural-compare@1.4.0: {} - negotiator@0.6.4: {} - negotiator@1.0.0: {} netmask@2.0.2: {} - node-abi@3.87.0: - dependencies: - semver: 7.7.4 - node-abi@4.26.0: dependencies: semver: 7.7.4 @@ -12646,24 +12672,7 @@ snapshots: transitivePeerDependencies: - supports-color - node-gyp@9.4.1: - dependencies: - env-paths: 2.2.1 - exponential-backoff: 3.1.3 - glob: 7.2.3 - graceful-fs: 4.2.11 - make-fetch-happen: 10.2.1 - nopt: 6.0.0 - npmlog: 6.0.2 - rimraf: 3.0.2 - semver: 7.7.4 - tar: 6.2.1 - which: 2.0.2 - transitivePeerDependencies: - - bluebird - - supports-color - - node-llama-cpp@3.15.1(typescript@5.9.3): + node-llama-cpp@3.15.0(typescript@5.9.3): dependencies: '@huggingface/jinja': 0.5.5 async-retry: 1.3.3 @@ -12695,19 +12704,59 @@ snapshots: which: 5.0.0 yargs: 17.7.2 optionalDependencies: - '@node-llama-cpp/linux-arm64': 3.15.1 - '@node-llama-cpp/linux-armv7l': 3.15.1 - '@node-llama-cpp/linux-x64': 3.15.1 - '@node-llama-cpp/linux-x64-cuda': 3.15.1 - '@node-llama-cpp/linux-x64-cuda-ext': 3.15.1 - '@node-llama-cpp/linux-x64-vulkan': 3.15.1 - '@node-llama-cpp/mac-arm64-metal': 3.15.1 - '@node-llama-cpp/mac-x64': 3.15.1 - '@node-llama-cpp/win-arm64': 3.15.1 - '@node-llama-cpp/win-x64': 3.15.1 - '@node-llama-cpp/win-x64-cuda': 3.15.1 - '@node-llama-cpp/win-x64-cuda-ext': 3.15.1 - '@node-llama-cpp/win-x64-vulkan': 3.15.1 + '@node-llama-cpp/linux-arm64': 3.15.0 + '@node-llama-cpp/linux-armv7l': 3.15.0 + '@node-llama-cpp/linux-x64': 3.15.0 + '@node-llama-cpp/linux-x64-vulkan': 3.15.0 + '@node-llama-cpp/mac-arm64-metal': 3.15.0 + '@node-llama-cpp/mac-x64': 3.15.0 + '@node-llama-cpp/win-arm64': 3.15.0 + '@node-llama-cpp/win-x64': 3.15.0 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + optional: true + + node-llama-cpp@3.16.2(typescript@5.9.3): + dependencies: + '@huggingface/jinja': 0.5.5 + async-retry: 1.3.3 + bytes: 3.1.2 + chalk: 5.6.2 + chmodrp: 1.0.2 + cmake-js: 8.0.0 + cross-spawn: 7.0.6 + env-var: 7.5.0 + filenamify: 6.0.0 + fs-extra: 11.3.3 + ignore: 7.0.5 + ipull: 3.9.5 + is-unicode-supported: 2.1.0 + lifecycle-utils: 3.1.1 + log-symbols: 7.0.1 + nanoid: 5.1.6 + node-addon-api: 8.5.0 + octokit: 5.0.5 + ora: 9.3.0 + pretty-ms: 9.3.0 + proper-lockfile: 4.1.2 + semver: 7.7.4 + simple-git: 3.31.1 + slice-ansi: 8.0.0 + stdout-update: 4.0.1 + strip-ansi: 7.1.2 + validate-npm-package-name: 7.0.2 + which: 6.0.1 + yargs: 17.7.2 + optionalDependencies: + '@node-llama-cpp/linux-arm64': 3.16.2 + '@node-llama-cpp/linux-armv7l': 3.16.2 + '@node-llama-cpp/linux-x64': 3.16.2 + '@node-llama-cpp/linux-x64-vulkan': 3.16.2 + '@node-llama-cpp/mac-arm64-metal': 3.16.2 + '@node-llama-cpp/mac-x64': 3.16.2 + '@node-llama-cpp/win-arm64': 3.16.2 + '@node-llama-cpp/win-x64': 3.16.2 typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -12722,10 +12771,6 @@ snapshots: abbrev: 1.1.1 optional: true - nopt@6.0.0: - dependencies: - abbrev: 1.1.1 - nopt@8.1.0: dependencies: abbrev: 3.0.1 @@ -12748,6 +12793,7 @@ snapshots: console-control-strings: 1.1.0 gauge: 4.0.4 set-blocking: 2.0.0 + optional: true nth-check@2.1.1: dependencies: @@ -12801,7 +12847,7 @@ snapshots: ws: 8.19.0 zod: 4.3.6 - openclaw@2026.3.1(@napi-rs/canvas@0.1.95)(@types/express@5.0.6)(encoding@0.1.13)(hono@4.11.8)(node-llama-cpp@3.15.1(typescript@5.9.3)): + openclaw@2026.3.1(@napi-rs/canvas@0.1.95)(@types/express@5.0.6)(encoding@0.1.13)(hono@4.11.8)(node-llama-cpp@3.16.2(typescript@5.9.3)): dependencies: '@agentclientprotocol/sdk': 0.14.1(zod@4.3.6) '@aws-sdk/client-bedrock': 3.1000.0 @@ -12848,7 +12894,7 @@ snapshots: markdown-it: 14.1.1 node-domexception: '@nolyfill/domexception@1.0.28' node-edge-tts: 1.2.10 - node-llama-cpp: 3.15.1(typescript@5.9.3) + node-llama-cpp: 3.16.2(typescript@5.9.3) opusscript: 0.1.1 osc-progress: 0.3.0 pdfjs-dist: 5.5.207 @@ -12915,6 +12961,7 @@ snapshots: stdin-discarder: 0.2.2 string-width: 7.2.0 strip-ansi: 7.1.2 + optional: true ora@9.3.0: dependencies: @@ -12941,10 +12988,6 @@ snapshots: dependencies: p-limit: 3.1.0 - p-map@4.0.0: - dependencies: - aggregate-error: 3.1.0 - p-map@7.0.4: {} p-queue@6.6.2: @@ -13085,6 +13128,8 @@ snapshots: pirates@4.0.7: {} + playwright-core@1.58.0: {} + playwright-core@1.58.2: {} plist@3.1.0: @@ -13133,6 +13178,11 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + postject@1.0.0-alpha.6: + dependencies: + commander: 9.5.0 + optional: true + prelude-ls@1.2.1: {} pretty-bytes@6.1.1: {} @@ -13164,8 +13214,6 @@ snapshots: progress@2.0.3: {} - promise-inflight@1.0.1: {} - promise-retry@2.0.1: dependencies: err-code: 2.0.3 @@ -13378,10 +13426,6 @@ snapshots: string_decoder: 1.3.0 util-deprecate: 1.0.2 - readdir-glob@1.1.3: - dependencies: - minimatch: 5.1.6 - readdirp@3.6.0: dependencies: picomatch: 2.3.1 @@ -13465,9 +13509,14 @@ snapshots: reusify@1.1.0: {} + rimraf@2.6.3: + dependencies: + glob: 7.2.3 + rimraf@3.0.2: dependencies: glob: 7.2.3 + optional: true rimraf@5.0.10: dependencies: @@ -13587,7 +13636,8 @@ snapshots: transitivePeerDependencies: - supports-color - set-blocking@2.0.0: {} + set-blocking@2.0.0: + optional: true set-cookie-parser@2.7.2: {} @@ -13694,15 +13744,12 @@ snapshots: ansi-styles: 6.2.3 is-fullwidth-code-point: 5.1.0 - smart-buffer@4.2.0: {} - - socks-proxy-agent@7.0.0: + slice-ansi@8.0.0: dependencies: - agent-base: 6.0.2 - debug: 4.4.3 - socks: 2.8.7 - transitivePeerDependencies: - - supports-color + ansi-styles: 6.2.3 + is-fullwidth-code-point: 5.1.0 + + smart-buffer@4.2.0: {} socks-proxy-agent@8.0.5: dependencies: @@ -13769,10 +13816,6 @@ snapshots: dependencies: minipass: 7.1.3 - ssri@9.0.1: - dependencies: - minipass: 3.3.6 - stackback@0.0.2: {} stat-mode@1.0.0: {} @@ -13781,7 +13824,8 @@ snapshots: std-env@3.10.0: {} - stdin-discarder@0.2.2: {} + stdin-discarder@0.2.2: + optional: true stdin-discarder@0.3.1: {} @@ -13924,14 +13968,6 @@ snapshots: - tsx - yaml - tar-stream@2.2.0: - dependencies: - bl: 4.1.0 - end-of-stream: 1.4.5 - fs-constants: 1.0.0 - inherits: 2.0.4 - readable-stream: 3.6.2 - tar@6.2.1: dependencies: chownr: 2.0.0 @@ -13940,6 +13976,15 @@ snapshots: minizlib: 2.1.2 mkdirp: 1.0.4 yallist: 4.0.0 + optional: true + + tar@7.5.4: + dependencies: + '@isaacs/fs-minipass': 4.0.1 + chownr: 3.0.0 + minipass: 7.1.3 + minizlib: 3.1.0 + yallist: 5.0.0 tar@7.5.9: dependencies: @@ -13954,6 +13999,11 @@ snapshots: async-exit-hook: 2.0.1 fs-extra: 10.1.0 + temp@0.9.4: + dependencies: + mkdirp: 0.5.6 + rimraf: 2.6.3 + thenify-all@1.6.0: dependencies: thenify: 3.3.1 @@ -14082,18 +14132,10 @@ snapshots: trough: 2.2.0 vfile: 6.0.3 - unique-filename@2.0.1: - dependencies: - unique-slug: 3.0.0 - unique-filename@4.0.0: dependencies: unique-slug: 5.0.0 - unique-slug@3.0.0: - dependencies: - imurmurhash: 0.1.4 - unique-slug@5.0.0: dependencies: imurmurhash: 0.1.4 @@ -14166,7 +14208,10 @@ snapshots: util-deprecate@1.0.2: {} - validate-npm-package-name@6.0.2: {} + validate-npm-package-name@6.0.2: + optional: true + + validate-npm-package-name@7.0.2: {} vary@1.1.2: {} @@ -14286,6 +14331,10 @@ snapshots: dependencies: isexe: 3.1.5 + which@6.0.1: + dependencies: + isexe: 4.0.0 + why-is-node-running@2.3.0: dependencies: siginfo: 2.0.0 @@ -14294,6 +14343,7 @@ snapshots: wide-align@1.1.5: dependencies: string-width: 4.2.3 + optional: true win-guid@0.2.1: {} @@ -14364,12 +14414,6 @@ snapshots: yoctocolors@2.1.2: {} - zip-stream@4.1.1: - dependencies: - archiver-utils: 3.0.4 - compress-commons: 4.1.2 - readable-stream: 3.6.2 - zod-to-json-schema@3.25.1(zod@3.25.76): dependencies: zod: 3.25.76 diff --git a/scripts/after-pack.cjs b/scripts/after-pack.cjs index 9014fc218..3446d291f 100644 --- a/scripts/after-pack.cjs +++ b/scripts/after-pack.cjs @@ -338,7 +338,8 @@ exports.default = async function afterPack(context) { // - node_modules/ is excluded by .gitignore so the deps copy must be manual const BUNDLED_PLUGINS = [ { npmName: '@soimy/dingtalk', pluginId: 'dingtalk' }, - { npmName: '@wecom/wecom-openclaw-plugin', pluginId: 'wecom' } + { npmName: '@wecom/wecom-openclaw-plugin', pluginId: 'wecom' }, + { npmName: '@sliverp/qqbot', pluginId: 'qqbot' }, ]; mkdirSync(pluginsDestRoot, { recursive: true }); diff --git a/scripts/bundle-openclaw-plugins.mjs b/scripts/bundle-openclaw-plugins.mjs index b3177441e..ad4fa6318 100644 --- a/scripts/bundle-openclaw-plugins.mjs +++ b/scripts/bundle-openclaw-plugins.mjs @@ -36,7 +36,8 @@ function normWin(p) { const PLUGINS = [ { npmName: '@soimy/dingtalk', pluginId: 'dingtalk' }, - { npmName: '@wecom/wecom-openclaw-plugin', pluginId: 'wecom' } + { npmName: '@wecom/wecom-openclaw-plugin', pluginId: 'wecom' }, + { npmName: '@sliverp/qqbot', pluginId: 'qqbot' }, ]; function getVirtualStoreNodeModules(realPkgPath) { diff --git a/src/assets/channels/qq.svg b/src/assets/channels/qq.svg new file mode 100644 index 000000000..0f8ca5984 --- /dev/null +++ b/src/assets/channels/qq.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/i18n/locales/en/channels.json b/src/i18n/locales/en/channels.json index de223142b..5b46244b7 100644 --- a/src/i18n/locales/en/channels.json +++ b/src/i18n/locales/en/channels.json @@ -315,6 +315,25 @@ "Create a new Bot Account", "Copy the access token" ] + }, + "qqbot": { + "description": "Connect QQ Bot via @sliverp/qqbot plugin", + "docsUrl": "https://github.com/sliverp/qqbot/blob/main/README.zh.md", + "fields": { + "appId": { + "label": "App ID", + "placeholder": "Your QQ Bot App ID" + }, + "clientSecret": { + "label": "Client Secret", + "placeholder": "Your QQ Bot Client Secret" + } + }, + "instructions": [ + "Register an app at QQ Bot Open Platform", + "Get App ID and Client Secret", + "Fill in your credentials below" + ] } }, "viewDocs": "View Documentation" diff --git a/src/i18n/locales/ja/channels.json b/src/i18n/locales/ja/channels.json index b9eae181b..eee1174ef 100644 --- a/src/i18n/locales/ja/channels.json +++ b/src/i18n/locales/ja/channels.json @@ -315,6 +315,25 @@ "アクセストークンをコピーします" ], "docsUrl": "https://docs.openclaw.ai/channels/mattermost" + }, + "qqbot": { + "description": "@sliverp/qqbot プラグイン経由で QQ ボットに接続します", + "fields": { + "appId": { + "label": "App ID", + "placeholder": "QQ ボットの App ID" + }, + "clientSecret": { + "label": "Client Secret", + "placeholder": "QQ ボットの Client Secret" + } + }, + "instructions": [ + "QQ ボットオープンプラットフォームでアプリを登録します", + "App ID と Client Secret を取得します", + "認証情報を入力します" + ], + "docsUrl": "https://github.com/sliverp/qqbot/blob/main/README.zh.md" } }, "viewDocs": "ドキュメントを表示" diff --git a/src/i18n/locales/zh/channels.json b/src/i18n/locales/zh/channels.json index fddcc6c90..bdb837070 100644 --- a/src/i18n/locales/zh/channels.json +++ b/src/i18n/locales/zh/channels.json @@ -315,6 +315,25 @@ "创建一个新的 Bot 账户", "复制访问令牌" ] + }, + "qqbot": { + "description": "通过 @sliverp/qqbot 插件连接 QQ 机器人", + "docsUrl": "https://github.com/sliverp/qqbot/blob/main/README.zh.md", + "fields": { + "appId": { + "label": "App ID", + "placeholder": "您的 QQ 机器人 App ID" + }, + "clientSecret": { + "label": "Client Secret", + "placeholder": "您的 QQ 机器人 Client Secret" + } + }, + "instructions": [ + "前往 QQ 机器人开放平台注册应用", + "获取 App ID 和 Client Secret", + "在下方填写凭证信息" + ] } }, "viewDocs": "查看文档" diff --git a/src/pages/Channels/index.tsx b/src/pages/Channels/index.tsx index dfcc2e524..176a09205 100644 --- a/src/pages/Channels/index.tsx +++ b/src/pages/Channels/index.tsx @@ -51,6 +51,7 @@ import whatsappIcon from '@/assets/channels/whatsapp.svg'; import dingtalkIcon from '@/assets/channels/dingtalk.svg'; import feishuIcon from '@/assets/channels/feishu.svg'; import wecomIcon from '@/assets/channels/wecom.svg'; +import qqIcon from '@/assets/channels/qq.svg'; export function Channels() { const { t } = useTranslation('channels'); @@ -285,6 +286,8 @@ function ChannelLogo({ type }: { type: ChannelType }) { return Feishu; case 'wecom': return WeCom; + case 'qqbot': + return QQ; default: return {CHANNEL_ICONS[type] || '💬'}; } diff --git a/src/types/channel.ts b/src/types/channel.ts index aac7c2080..c7a9ad56e 100644 --- a/src/types/channel.ts +++ b/src/types/channel.ts @@ -19,7 +19,8 @@ export type ChannelType = | 'line' | 'msteams' | 'googlechat' - | 'mattermost'; + | 'mattermost' + | 'qqbot'; /** * Channel connection status @@ -92,6 +93,7 @@ export const CHANNEL_ICONS: Record = { msteams: '👔', googlechat: '💭', mattermost: '💠', + qqbot: '🐧', }; /** @@ -111,12 +113,43 @@ export const CHANNEL_NAMES: Record = { msteams: 'Microsoft Teams', googlechat: 'Google Chat', mattermost: 'Mattermost', + qqbot: 'QQ Bot', }; /** * Channel metadata with configuration information */ export const CHANNEL_META: Record = { + qqbot: { + id: 'qqbot', + name: 'QQ Bot', + icon: '🐧', + description: 'channels:meta.qqbot.description', + connectionType: 'token', + docsUrl: 'channels:meta.qqbot.docsUrl', + configFields: [ + { + key: 'appId', + label: 'channels:meta.qqbot.fields.appId.label', + type: 'text', + placeholder: 'channels:meta.qqbot.fields.appId.placeholder', + required: true, + }, + { + key: 'clientSecret', + label: 'channels:meta.qqbot.fields.clientSecret.label', + type: 'password', + placeholder: 'channels:meta.qqbot.fields.clientSecret.placeholder', + required: true, + }, + ], + instructions: [ + 'channels:meta.qqbot.instructions.0', + 'channels:meta.qqbot.instructions.1', + 'channels:meta.qqbot.instructions.2', + ], + isPlugin: true, + }, dingtalk: { id: 'dingtalk', name: 'DingTalk', @@ -529,7 +562,7 @@ export const CHANNEL_META: Record = { * Get primary supported channels (non-plugin, commonly used) */ export function getPrimaryChannels(): ChannelType[] { - return ['telegram', 'discord', 'whatsapp', 'dingtalk', 'feishu', 'wecom']; + return ['telegram', 'discord', 'whatsapp', 'dingtalk', 'feishu', 'wecom', 'qqbot']; } /** @@ -537,4 +570,4 @@ export function getPrimaryChannels(): ChannelType[] { */ export function getAllChannels(): ChannelType[] { return Object.keys(CHANNEL_META) as ChannelType[]; -} \ No newline at end of file +}