diff --git a/.changeset/align-pi-packages.md b/.changeset/align-pi-packages.md new file mode 100644 index 000000000..1d4f81c68 --- /dev/null +++ b/.changeset/align-pi-packages.md @@ -0,0 +1,7 @@ +--- +"@open-codesign/core": patch +"@open-codesign/providers": patch +"@open-codesign/desktop": patch +--- + +Migrate the pi agent, model, and coding-agent packages together to the maintained 0.79.x releases (at least 0.79.0), which fix extension loading, credential-file, and HTML-export security issues. Align the application's HTTP runtime with pi's fixed Undici 8.12.4 release and require Node.js 22.19.0 or newer. diff --git a/.github/prompts/codex-pr-review.md b/.github/prompts/codex-pr-review.md index 018be7c6d..10856eca7 100644 --- a/.github/prompts/codex-pr-review.md +++ b/.github/prompts/codex-pr-review.md @@ -26,7 +26,7 @@ Open CoDesign is an open-source AI design tool — Electron desktop app that tur **Project constraints:** - ≤ 30 prod dependencies - Shipped app/runtime dependencies and copied/bundled assets must be MIT-compatible permissive. Workflow-only CI/release actions may use copyleft licenses when they are not vendored or distributed and their outputs are ordinary metadata/manifests. -- All LLM calls via `@mariozechner/pi-ai` (no direct provider SDK imports in app code) +- All LLM calls via `@earendil-works/pi-ai` (no direct provider SDK imports in app code) - No silent fallbacks for user-visible failure, data loss, auth/security decisions, or persisted state. Best-effort cleanup, optional discovery, and non-critical listing paths may degrade quietly when the UI still presents a truthful state. diff --git a/CLAUDE.md b/CLAUDE.md index b53877e64..277629eda 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -31,7 +31,7 @@ These are project-level commitments, not preferences: - **Commits**: Conventional Commits, enforced by commitlint. - **Versioning**: Changesets. Don't hand-edit `CHANGELOG.md`. - **Node**: 22 LTS (pinned via `.nvmrc` + `engines`). -- **Model layer**: All LLM calls go through `@mariozechner/pi-ai`. Don't import provider SDKs directly in app code; if pi-ai lacks a feature, add it to `packages/providers` as a thin extension. +- **Model layer**: All LLM calls go through `@earendil-works/pi-ai`. Don't import provider SDKs directly in app code; if pi-ai lacks a feature, add it to `packages/providers` as a thin extension. ### Frontend stack (locked) diff --git a/README.md b/README.md index 2fe651e8f..fb2af5a0f 100644 --- a/README.md +++ b/README.md @@ -378,7 +378,7 @@ Have a different priority in mind? [Open an issue](https://github.com/OpenCowork ## Built on - Electron + React 19 + Vite 6 + Tailwind v4 -- `@mariozechner/pi-ai` and `pi-coding-agent` (model/provider and agent-loop primitives) +- `@earendil-works/pi-ai` and `pi-coding-agent` (model/provider and agent-loop primitives) - `electron-builder` ## Reporting issues diff --git a/README.zh-CN.md b/README.zh-CN.md index d4ce25a33..1e3eaa8c3 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -303,7 +303,7 @@ v0.2 已经把 Open CoDesign 从一次性生成器升级成一个本地设计 ag ## 基于这些技术构建 - Electron + React 19 + Vite 6 + Tailwind v4 -- `@mariozechner/pi-ai` 与 `pi-coding-agent`(模型 / provider 与 agent loop 基础能力) +- `@earendil-works/pi-ai` 与 `pi-coding-agent`(模型 / provider 与 agent loop 基础能力) - `electron-builder` ## 社群 diff --git a/apps/desktop/electron.vite.config.ts b/apps/desktop/electron.vite.config.ts index c830da339..7ab331fbc 100644 --- a/apps/desktop/electron.vite.config.ts +++ b/apps/desktop/electron.vite.config.ts @@ -19,9 +19,9 @@ const WORKSPACE_PACKAGES = [ '@open-codesign/ui', ]; const BUNDLED_RUNTIME_PACKAGES = [ - '@mariozechner/pi-agent-core', - '@mariozechner/pi-ai', - '@mariozechner/pi-coding-agent', + '@earendil-works/pi-agent-core', + '@earendil-works/pi-ai', + '@earendil-works/pi-coding-agent', 'electron-log', 'electron-log/main', 'electron-updater', @@ -71,7 +71,7 @@ export default defineConfig(({ mode }) => ({ ...(mode === 'background-debug' ? { output: { chunkFileNames: '[name]-[hash].js' } } : {}), treeshake: { moduleSideEffects: (id) => - !id.includes('/node_modules/@mariozechner/pi-coding-agent/dist/'), + !id.includes('/node_modules/@earendil-works/pi-coding-agent/dist/'), }, external: ['electron', 'puppeteer-core'], plugins: [copyPromptSections()], diff --git a/apps/desktop/package.json b/apps/desktop/package.json index 98ae2e6c6..82544dbc7 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -26,12 +26,12 @@ "ms": "2.1.3", "parse5": "8.0.1", "puppeteer-core": "^24.42.0", - "undici": "^7.30.1" + "undici": "8.12.4" }, "devDependencies": { - "@mariozechner/pi-agent-core": "^0.72.1", - "@mariozechner/pi-ai": "^0.72.1", - "@mariozechner/pi-coding-agent": "^0.72.1", + "@earendil-works/pi-agent-core": "^0.79.0", + "@earendil-works/pi-ai": "^0.79.0", + "@earendil-works/pi-coding-agent": "^0.79.0", "@open-codesign/artifacts": "workspace:*", "@open-codesign/core": "workspace:*", "@open-codesign/exporters": "workspace:*", diff --git a/apps/desktop/src/main/codex-models.test.ts b/apps/desktop/src/main/codex-models.test.ts index 8fdc07789..80065a9c1 100644 --- a/apps/desktop/src/main/codex-models.test.ts +++ b/apps/desktop/src/main/codex-models.test.ts @@ -3,7 +3,7 @@ import { getCodexModelOptions } from './codex-models'; import { readCodexConfig } from './imports/codex-config'; vi.mock('./imports/codex-config', () => ({ readCodexConfig: vi.fn() })); -vi.mock('@mariozechner/pi-ai', () => ({ +vi.mock('@earendil-works/pi-ai', () => ({ getModels: (provider: string) => (provider === 'openai-codex' ? [{ id: 'catalog-model' }] : []), })); diff --git a/apps/desktop/src/main/codex-models.ts b/apps/desktop/src/main/codex-models.ts index 51e13db44..69663e3b0 100644 --- a/apps/desktop/src/main/codex-models.ts +++ b/apps/desktop/src/main/codex-models.ts @@ -14,7 +14,7 @@ export async function getCodexModelOptions(): Promise { (imported?.activeProvider === 'codex-openai' && !imported.providers.some((provider) => provider.id === 'codex-openai')); const suggestedModel = usesBuiltinProvider ? (imported?.activeModel ?? null) : null; - const { getModels } = await import('@mariozechner/pi-ai'); + const { getModels } = await import('@earendil-works/pi-ai'); return { suggestedModel, models: [ diff --git a/apps/desktop/src/main/generation-native-cancel.test.ts b/apps/desktop/src/main/generation-native-cancel.test.ts index 1df88f8a8..1134ba630 100644 --- a/apps/desktop/src/main/generation-native-cancel.test.ts +++ b/apps/desktop/src/main/generation-native-cancel.test.ts @@ -2,8 +2,8 @@ import { EventEmitter } from 'node:events'; import { mkdtemp, rm } from 'node:fs/promises'; import { tmpdir } from 'node:os'; import { join } from 'node:path'; -import type { AgentOptions, StreamFn } from '@mariozechner/pi-agent-core'; -import { type AssistantMessage, createAssistantMessageEventStream } from '@mariozechner/pi-ai'; +import type { AgentOptions, StreamFn } from '@earendil-works/pi-agent-core'; +import { type AssistantMessage, createAssistantMessageEventStream } from '@earendil-works/pi-ai'; import { generateViaAgent } from '@open-codesign/core'; import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; import { @@ -24,8 +24,8 @@ const native = vi.hoisted(() => ({ stream: vi.fn(), windows: [] as Electron.BrowserWindow[], })); -vi.mock('@mariozechner/pi-agent-core', async (importOriginal) => { - const actual = await importOriginal(); +vi.mock('@earendil-works/pi-agent-core', async (importOriginal) => { + const actual = await importOriginal(); return { ...actual, Agent: class extends actual.Agent { diff --git a/apps/desktop/src/main/ipc/generate.ts b/apps/desktop/src/main/ipc/generate.ts index 46c86bb90..65c154f71 100644 --- a/apps/desktop/src/main/ipc/generate.ts +++ b/apps/desktop/src/main/ipc/generate.ts @@ -935,7 +935,7 @@ export function registerGenerateIpc({ db, getMainWindow }: RegisterGenerateIpcDe }); await research.saveNativeSources?.(records, input.signal); }, - persistMessage: (message: import('@mariozechner/pi-ai').AssistantMessage) => { + persistMessage: (message: import('@earendil-works/pi-ai').AssistantMessage) => { const store = chatStoreOptions(); if (store) appendSessionNativeSearchMessage(store, designId, message); }, diff --git a/apps/desktop/src/main/ipc/generate.workspace-rename.test.ts b/apps/desktop/src/main/ipc/generate.workspace-rename.test.ts index 3d4000a9e..4005d6e27 100644 --- a/apps/desktop/src/main/ipc/generate.workspace-rename.test.ts +++ b/apps/desktop/src/main/ipc/generate.workspace-rename.test.ts @@ -1,8 +1,8 @@ import { mkdir, readdir, readFile, rm, symlink, writeFile } from 'node:fs/promises'; import os from 'node:os'; import path from 'node:path'; -import { Agent } from '@mariozechner/pi-agent-core'; -import { createAssistantMessageEventStream, getModel } from '@mariozechner/pi-ai'; +import { Agent } from '@earendil-works/pi-agent-core'; +import { createAssistantMessageEventStream, getModel } from '@earendil-works/pi-ai'; import type { Design } from '@open-codesign/shared'; import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; diff --git a/apps/desktop/src/main/migration/v01-to-v02.ts b/apps/desktop/src/main/migration/v01-to-v02.ts index 966fb7bdf..0f4dc05db 100644 --- a/apps/desktop/src/main/migration/v01-to-v02.ts +++ b/apps/desktop/src/main/migration/v01-to-v02.ts @@ -1,6 +1,6 @@ import { existsSync, mkdirSync, renameSync, writeFileSync } from 'node:fs'; import path from 'node:path'; -import type { Message, Usage } from '@mariozechner/pi-ai'; +import type { Message, Usage } from '@earendil-works/pi-ai'; import { SessionManager } from '@open-codesign/core'; import { normalizeDesignFilePath } from '../snapshots-db'; import { prepareWorkspaceWriteContent } from '../workspace-file-content'; diff --git a/apps/desktop/src/main/session-chat.test.ts b/apps/desktop/src/main/session-chat.test.ts index 5954af07a..2b99f3829 100644 --- a/apps/desktop/src/main/session-chat.test.ts +++ b/apps/desktop/src/main/session-chat.test.ts @@ -60,7 +60,7 @@ describe('session design brief storage', () => { const db = initSnapshotsDb(path.join(root, 'design-store.json')); const design = createDesign(db, 'Native sources'); updateDesignWorkspace(db, design.id, root); - const message: import('@mariozechner/pi-ai').AssistantMessage = { + const message: import('@earendil-works/pi-ai').AssistantMessage = { role: 'assistant', api: 'anthropic-messages', provider: 'anthropic', diff --git a/apps/desktop/src/main/session-chat.ts b/apps/desktop/src/main/session-chat.ts index 66c7b5c82..fc8727f81 100644 --- a/apps/desktop/src/main/session-chat.ts +++ b/apps/desktop/src/main/session-chat.ts @@ -39,7 +39,7 @@ const NATIVE_SEARCH_CUSTOM_TYPE = 'open-codesign.native-search.v1'; export function appendSessionNativeSearchMessage( opts: SessionChatStoreOptions, designId: string, - message: import('@mariozechner/pi-ai').AssistantMessage, + message: import('@earendil-works/pi-ai').AssistantMessage, ): void { const manager = openSession(opts, designId); manager.appendCustomEntry(NATIVE_SEARCH_CUSTOM_TYPE, { schemaVersion: 1, message }); @@ -49,7 +49,7 @@ export function appendSessionNativeSearchMessage( export function readSessionNativeSearchMessages( opts: SessionChatStoreOptions, designId: string, -): import('@mariozechner/pi-ai').AssistantMessage[] { +): import('@earendil-works/pi-ai').AssistantMessage[] { const file = sessionFileForDesign(opts.sessionDir, designId); if (!existsSync(file)) return []; const manager = SessionManager.open(file, opts.sessionDir, resolveSessionCwd(opts, designId)); @@ -66,7 +66,7 @@ export function readSessionNativeSearchMessages( return []; const value = custom.data as { schemaVersion?: number; - message?: import('@mariozechner/pi-ai').AssistantMessage; + message?: import('@earendil-works/pi-ai').AssistantMessage; }; const message = value.message; if ( diff --git a/apps/desktop/src/main/undici-runtime.test.ts b/apps/desktop/src/main/undici-runtime.test.ts new file mode 100644 index 000000000..ff7d22325 --- /dev/null +++ b/apps/desktop/src/main/undici-runtime.test.ts @@ -0,0 +1,53 @@ +import { readFileSync, realpathSync } from 'node:fs'; +import { createServer } from 'node:http'; +import { createRequire } from 'node:module'; +import { getGlobalDispatcher } from 'undici'; +import { describe, expect, it, vi } from 'vitest'; +import { withTlsBypass } from './tls-override'; + +vi.mock('./logger', () => ({ + getLogger: () => ({ warn: vi.fn(), error: vi.fn() }), +})); + +describe('bundled pi HTTP runtime', () => { + it('uses the same installed Undici version as the application external', () => { + const appRequire = createRequire(import.meta.url); + const piRequire = createRequire( + realpathSync( + new URL('../../node_modules/@earendil-works/pi-coding-agent/package.json', import.meta.url), + ), + ); + const version = (from: ReturnType): string => { + const metadata = JSON.parse(readFileSync(from.resolve('undici/package.json'), 'utf8')) as { + version: string; + }; + return metadata.version; + }; + + // electron-vite resolves bundled pi's external production dependencies + // from the app. Checking the nested install alone misses a runtime mismatch. + expect(version(appRequire)).toBe(version(piRequire)); + }); + + it('bridges the app dispatcher to native fetch and restores it after a request', async () => { + const server = createServer((_request, response) => response.end('runtime-ok')); + await new Promise((resolve) => server.listen(0, '127.0.0.1', resolve)); + const original = getGlobalDispatcher(); + try { + const address = server.address(); + if (address === null || typeof address === 'string') throw new Error('Missing test port'); + const text = await withTlsBypass(true, async () => { + expect(getGlobalDispatcher()).not.toBe(original); + const response = await fetch(`http://127.0.0.1:${address.port}/`); + return response.text(); + }); + expect(text).toBe('runtime-ok'); + expect(getGlobalDispatcher()).toBe(original); + } finally { + server.closeAllConnections(); + await new Promise((resolve, reject) => { + server.close((error) => (error ? reject(error) : resolve())); + }); + } + }); +}); diff --git a/package.json b/package.json index 568726431..83d0f5570 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "url": "https://github.com/OpenCoworkAI/open-codesign/issues" }, "engines": { - "node": ">=22" + "node": ">=22.19.0" }, "packageManager": "pnpm@10.33.4", "scripts": { @@ -39,6 +39,8 @@ "overrides": { "@xmldom/xmldom@<0.8.15": "0.8.15", "pptxgenjs@4.0.1>image-size": "-", + "undici@>=8.0.0 <8.12.4": "8.12.4", + "undici@>=7.0.0 <7.30.1": "7.30.1", "fast-xml-parser@<5.7.0": ">=5.7.0", "vitepress>vite": "6.4.2", "esbuild@<0.25.0": ">=0.25.0", @@ -46,7 +48,7 @@ }, "patchedDependencies": { "pptxgenjs@4.0.1": "patches/pptxgenjs@4.0.1.patch", - "@mariozechner/pi-ai@0.72.1": "patches/@mariozechner__pi-ai@0.72.1.patch" + "@earendil-works/pi-ai@0.79.10": "patches/@earendil-works__pi-ai@0.79.10.patch" } }, "devDependencies": { diff --git a/packages/core/package.json b/packages/core/package.json index 1ebface29..6444a63ca 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -15,9 +15,9 @@ "test": "vitest run --passWithNoTests" }, "dependencies": { - "@mariozechner/pi-agent-core": "^0.72.1", - "@mariozechner/pi-ai": "^0.72.1", - "@mariozechner/pi-coding-agent": "^0.72.1", + "@earendil-works/pi-agent-core": "^0.79.0", + "@earendil-works/pi-ai": "^0.79.0", + "@earendil-works/pi-coding-agent": "^0.79.0", "@open-codesign/providers": "workspace:*", "@open-codesign/shared": "workspace:*", "@sinclair/typebox": "^0.34.49" diff --git a/packages/core/src/active-messages.test.ts b/packages/core/src/active-messages.test.ts index 9b68e290b..5e00effb6 100644 --- a/packages/core/src/active-messages.test.ts +++ b/packages/core/src/active-messages.test.ts @@ -1,9 +1,9 @@ -import { Agent, type AgentMessage } from '@mariozechner/pi-agent-core'; +import { Agent, type AgentMessage } from '@earendil-works/pi-agent-core'; import { type AssistantMessage, createAssistantMessageEventStream, getModel, -} from '@mariozechner/pi-ai'; +} from '@earendil-works/pi-ai'; import type { ActiveRunMessageInputV1, ActiveRunMessageV1 } from '@open-codesign/shared'; import { Type } from '@sinclair/typebox'; import { describe, expect, it, vi } from 'vitest'; diff --git a/packages/core/src/active-messages.ts b/packages/core/src/active-messages.ts index 36fc5fb2c..0bcf53528 100644 --- a/packages/core/src/active-messages.ts +++ b/packages/core/src/active-messages.ts @@ -1,4 +1,4 @@ -import type { Agent, AgentEvent, AgentMessage } from '@mariozechner/pi-agent-core'; +import type { Agent, AgentEvent, AgentMessage } from '@earendil-works/pi-agent-core'; import { type ActiveRunMessageInputV1, type ActiveRunMessageV1, diff --git a/packages/core/src/agent-session.test.ts b/packages/core/src/agent-session.test.ts index 9bef1614d..1ef1703f8 100644 --- a/packages/core/src/agent-session.test.ts +++ b/packages/core/src/agent-session.test.ts @@ -1,7 +1,7 @@ import { mkdtempSync, rmSync } from 'node:fs'; import { tmpdir } from 'node:os'; import path from 'node:path'; -import { AuthStorage } from '@mariozechner/pi-coding-agent'; +import { AuthStorage } from '@earendil-works/pi-coding-agent'; import { describe, expect, it } from 'vitest'; import { createCodesignSession } from './agent-session.js'; diff --git a/packages/core/src/agent-session.ts b/packages/core/src/agent-session.ts index fdca04b70..77ed549e1 100644 --- a/packages/core/src/agent-session.ts +++ b/packages/core/src/agent-session.ts @@ -1,5 +1,5 @@ /** - * v0.2 agent-session wrapper around `@mariozechner/pi-coding-agent`. + * v0.2 agent-session wrapper around `@earendil-works/pi-coding-agent`. * * Spike result (docs/spike-pi-results.md, 2026-04-24): * pi-coding-agent satisfies all v0.2 hard needs (bash hook, session @@ -13,7 +13,7 @@ */ import path from 'node:path'; -import type { Api, Model } from '@mariozechner/pi-ai'; +import type { Api, Model } from '@earendil-works/pi-ai'; import { type AgentSession, type AuthStorage, @@ -25,7 +25,7 @@ import { isToolCallEventType, ModelRegistry, SessionManager, -} from '@mariozechner/pi-coding-agent'; +} from '@earendil-works/pi-coding-agent'; export interface PermissionDecision { /** Allow this command to run. */ @@ -95,4 +95,4 @@ export async function createCodesignSession(options: CreateSessionOptions): Prom return { session: result.session, result, sessionFile }; } -export { AuthStorage, ModelRegistry, SessionManager } from '@mariozechner/pi-coding-agent'; +export { AuthStorage, ModelRegistry, SessionManager } from '@earendil-works/pi-coding-agent'; diff --git a/packages/core/src/agent.active-message-retry.test.ts b/packages/core/src/agent.active-message-retry.test.ts index 02dad4bc4..9004e1d6e 100644 --- a/packages/core/src/agent.active-message-retry.test.ts +++ b/packages/core/src/agent.active-message-retry.test.ts @@ -1,5 +1,5 @@ -import type { Agent, AgentMessage, AgentOptions, StreamFn } from '@mariozechner/pi-agent-core'; -import { type AssistantMessage, createAssistantMessageEventStream } from '@mariozechner/pi-ai'; +import type { Agent, AgentMessage, AgentOptions, StreamFn } from '@earendil-works/pi-agent-core'; +import { type AssistantMessage, createAssistantMessageEventStream } from '@earendil-works/pi-ai'; import type { ActiveRunMessageV1 } from '@open-codesign/shared'; import { beforeEach, describe, expect, it, vi } from 'vitest'; import { ActiveRunMessages } from './active-messages'; @@ -10,8 +10,8 @@ const native = vi.hoisted(() => ({ agents: [] as Agent[], })); -vi.mock('@mariozechner/pi-agent-core', async (importOriginal) => { - const actual = await importOriginal(); +vi.mock('@earendil-works/pi-agent-core', async (importOriginal) => { + const actual = await importOriginal(); return { ...actual, Agent: class extends actual.Agent { diff --git a/packages/core/src/agent.design-loop.test.ts b/packages/core/src/agent.design-loop.test.ts index c8cdb0c0a..bd82783fe 100644 --- a/packages/core/src/agent.design-loop.test.ts +++ b/packages/core/src/agent.design-loop.test.ts @@ -1,8 +1,8 @@ import { mkdtempSync, readdirSync, readFileSync, rmSync, writeFileSync } from 'node:fs'; import { tmpdir } from 'node:os'; import { join } from 'node:path'; -import type { Agent, AgentMessage, AgentOptions, StreamFn } from '@mariozechner/pi-agent-core'; -import { type AssistantMessage, createAssistantMessageEventStream } from '@mariozechner/pi-ai'; +import type { Agent, AgentMessage, AgentOptions, StreamFn } from '@earendil-works/pi-agent-core'; +import { type AssistantMessage, createAssistantMessageEventStream } from '@earendil-works/pi-ai'; import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; import { generateViaAgent } from './agent'; import type { GenerateInput } from './index'; @@ -13,8 +13,8 @@ import type { TextEditorFsCallbacks } from './tools/text-editor'; const native = vi.hoisted(() => ({ stream: vi.fn(), agents: [] as Agent[] })); // Substitute only pi's streaming boundary; Agent scheduling, tools and recovery are real. -vi.mock('@mariozechner/pi-agent-core', async (importOriginal) => { - const actual = await importOriginal(); +vi.mock('@earendil-works/pi-agent-core', async (importOriginal) => { + const actual = await importOriginal(); return { ...actual, Agent: class extends actual.Agent { diff --git a/packages/core/src/agent.native-lifecycle.test.ts b/packages/core/src/agent.native-lifecycle.test.ts index b89635ef1..97ce12eec 100644 --- a/packages/core/src/agent.native-lifecycle.test.ts +++ b/packages/core/src/agent.native-lifecycle.test.ts @@ -1,13 +1,13 @@ import { mkdtempSync, readdirSync, readFileSync, rmSync, writeFileSync } from 'node:fs'; import { tmpdir } from 'node:os'; import { join } from 'node:path'; -import type { Agent, AgentMessage, AgentOptions, StreamFn } from '@mariozechner/pi-agent-core'; -import { type AssistantMessage, createAssistantMessageEventStream } from '@mariozechner/pi-ai'; -import type { ActiveRunMessageV1 } from '@open-codesign/shared'; +import type { Agent, AgentMessage, AgentOptions, StreamFn } from '@earendil-works/pi-agent-core'; +import { type AssistantMessage, createAssistantMessageEventStream } from '@earendil-works/pi-ai'; +import { type ActiveRunMessageV1, CodesignError, ERROR_CODES } from '@open-codesign/shared'; import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; import { ActiveRunMessages } from './active-messages'; import { generateViaAgent } from './agent'; -import type { GenerateInput } from './index'; +import type { AgentEvent, GenerateInput } from './index'; import type { AskResult } from './tools/ask'; import type { DoneDetails } from './tools/done'; import type { RunPreviewFn } from './tools/preview'; @@ -16,8 +16,8 @@ import type { TextEditorFsCallbacks } from './tools/text-editor'; const native = vi.hoisted(() => ({ stream: vi.fn(), agents: [] as Agent[] })); // Substitute only pi's streaming boundary; Agent scheduling, tools and recovery are real. -vi.mock('@mariozechner/pi-agent-core', async (importOriginal) => { - const actual = await importOriginal(); +vi.mock('@earendil-works/pi-agent-core', async (importOriginal) => { + const actual = await importOriginal(); return { ...actual, Agent: class extends actual.Agent { @@ -491,6 +491,30 @@ describe('production generateViaAgent with installed pi', () => { native.agents[0]?.state.messages.filter((message) => message.role === 'user'), ).toHaveLength(1); }); + it.each([ + new CodesignError('Observer failed', ERROR_CODES.GENERATION_INCOMPLETE), + null, + undefined, + ])('propagates unrelated observer failure %s without treating it as a controlled halt', async (failure) => { + seed(); + const onComplete = vi.fn(); + const ended: AgentEvent[] = []; + script([[todos()], 'Must not continue']); + const running = generateViaAgent(input, { + fs, + onComplete, + onEvent: (event) => { + if (event.type === 'agent_end') ended.push(event); + if (event.type === 'turn_end') throw failure; + }, + }); + if (failure instanceof Error) await expect(running).rejects.toBe(failure); + else await expect(running).rejects.toThrow(String(failure)); + expect(native.stream).toHaveBeenCalledOnce(); + expect(onComplete).not.toHaveBeenCalled(); + expect(ended).toHaveLength(0); + }); + describe('repeated tool calls', () => { // Only the repeated call reads this file, so its view count is the number of executions. const PROBE = 'probe.txt'; diff --git a/packages/core/src/agent.test.ts b/packages/core/src/agent.test.ts index ace42a8a9..fc90cc52c 100644 --- a/packages/core/src/agent.test.ts +++ b/packages/core/src/agent.test.ts @@ -1,7 +1,7 @@ import { existsSync, mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs'; import { tmpdir } from 'node:os'; import path from 'node:path'; -import type { AgentEvent, AgentMessage, AgentOptions } from '@mariozechner/pi-agent-core'; +import type { AgentEvent, AgentMessage, AgentOptions } from '@earendil-works/pi-agent-core'; import type { LoadedSkill, ModelRef, @@ -95,7 +95,7 @@ interface AgentScript { let scriptedAgent: AgentScript = { assistantText: '' }; -vi.mock('@mariozechner/pi-agent-core', () => { +vi.mock('@earendil-works/pi-agent-core', () => { class MockAgent { clearAllQueues(): void {} steer(): void {} @@ -310,7 +310,7 @@ vi.mock('./skills/loader.js', async () => { const streamSimpleMock = vi.hoisted(() => vi.fn()); -vi.mock('@mariozechner/pi-ai', () => ({ +vi.mock('@earendil-works/pi-ai', () => ({ streamSimple: streamSimpleMock, getModel: (provider: string, modelId: string) => ({ id: modelId, @@ -2869,7 +2869,7 @@ it.each([ paused, }) => { scriptedAgent = { assistantText: 'Ready' }; - const saved: import('@mariozechner/pi-ai').AssistantMessage = { + const saved: import('@earendil-works/pi-ai').AssistantMessage = { role: 'assistant', provider: MODEL.provider, model: MODEL.modelId, @@ -2976,7 +2976,7 @@ it.each([ scriptedAgent = { assistantText: 'Ready' }; const saved = Array.from( { length: savedCount }, - (_, index): import('@mariozechner/pi-ai').AssistantMessage => ({ + (_, index): import('@earendil-works/pi-ai').AssistantMessage => ({ role: 'assistant', provider: MODEL.provider, model: MODEL.modelId, diff --git a/packages/core/src/agent.ts b/packages/core/src/agent.ts index 82c4b7e96..80c2cf4f6 100644 --- a/packages/core/src/agent.ts +++ b/packages/core/src/agent.ts @@ -1,7 +1,7 @@ /** * Agent runtime wrapper — the live generate path in v0.2. * - * Routes a `generate()`-shaped request through `@mariozechner/pi-agent-core` + * Routes a `generate()`-shaped request through `@earendil-works/pi-agent-core` * with the v0.2 design tool set (set_title, set_todos, * str_replace_based_edit_tool, done, generate_image_asset, skill, scaffold, * preview, tweaks, ask — see `defaultTools` below). Streams `turn_start` / @@ -26,13 +26,13 @@ import { type AgentMessage, type AgentTool, type AgentToolResult, -} from '@mariozechner/pi-agent-core'; +} from '@earendil-works/pi-agent-core'; import { type ImageContent as PiAiImageContent, type Message as PiAiMessage, type Model as PiAiModel, streamSimple, -} from '@mariozechner/pi-ai'; +} from '@earendil-works/pi-ai'; import type { RetryDecision, RetryReason } from '@open-codesign/providers'; import { classifyError, @@ -129,7 +129,7 @@ import { makeWebResearchTools, WEB_RESEARCH_GUIDANCE } from './tools/web-researc /** Local mirror of the assistant message shape that pi-agent-core emits (via * pi-ai). Declared here so this file does not take a direct dependency on - * `@mariozechner/pi-ai`'s types; keep this shape in lockstep with the real + * `@earendil-works/pi-ai`'s types; keep this shape in lockstep with the real * pi-ai `AssistantMessage` whenever pi-agent-core is upgraded. */ interface PiAssistantMessage { role: 'assistant'; @@ -910,7 +910,7 @@ export type { AgentEvent }; export interface GenerateViaAgentDeps { nativeSearch?: NativeSearchOptions; - nativeSearchHistory?: Array; + nativeSearchHistory?: Array; research?: ResearchHost | undefined; activeMessages?: ActiveRunMessages | undefined; /** Optional subscriber for Agent lifecycle + streaming events. */ @@ -1298,7 +1298,7 @@ async function generateViaAgentInternal( // the ordinary translated history rather than replaying a wrong search. const savedNativeByText = new Map< string, - Array + Array >(); for (const message of deps.nativeSearch ? (deps.nativeSearchHistory ?? []) : []) { if ( @@ -1384,6 +1384,18 @@ async function generateViaAgentInternal( // original lets the post-agent branch rethrow it as-is, so the renderer // sees the same code the initial IPC-level resolution would emit. let capturedGetApiKeyError: unknown = null; + let turnBoundaryHalt: CodesignError | null = null; + const agentsWithEndEvent = new WeakSet(); + const forwardAgentEvent = (event: AgentEvent): void => { + deps.activeMessages?.handleEvent(event, () => { + resourceState.lastDone = null; + runProtocolState.todosSet = false; + lastDoneDetails = undefined; + doneProgress.errorRounds = 0; + toolLoopGuard.reset(); + }); + deps.onEvent?.(event); + }; const requestTimeoutMs = input.requestTimeoutMs; // Factory for creating agents with a given message history. Used for both @@ -1466,26 +1478,25 @@ async function generateViaAgentInternal( : {}), }); retryAgent.subscribe((event) => { - deps.activeMessages?.handleEvent(event, () => { - resourceState.lastDone = null; - runProtocolState.todosSet = false; - lastDoneDetails = undefined; - doneProgress.errorRounds = 0; - toolLoopGuard.reset(); - }); - deps.onEvent?.(event); + if (event.type === 'agent_end') agentsWithEndEvent.add(retryAgent); + forwardAgentEvent(event); if (event.type === 'turn_end') { assertNotCancelled(); // Agent does not expose the low-level shouldStopAfterTurn hook. Fail the // settled batch at its native event boundary, before pi drains queues. if (repairLimitReached()) { - throw new CodesignError('Done repair limit reached', ERROR_CODES.GENERATION_INCOMPLETE); + turnBoundaryHalt = new CodesignError( + 'Done repair limit reached', + ERROR_CODES.GENERATION_INCOMPLETE, + ); + throw turnBoundaryHalt; } if (toolLoop.halt !== null) { - throw new CodesignError( + turnBoundaryHalt = new CodesignError( formatToolLoopIncomplete(toolLoop.halt), ERROR_CODES.GENERATION_INCOMPLETE, ); + throw turnBoundaryHalt; } } }); @@ -1511,10 +1522,23 @@ async function generateViaAgentInternal( const target = agent; const abort = () => target.abort(); input.signal?.addEventListener('abort', abort, { once: true }); + let controlledHalt = false; try { assertNotCancelled(); - await run(); + try { + await run(); + } catch (err) { + // pi now propagates listener exceptions. Our own turn-boundary halt + // still needs transcript completion before the normal incomplete result. + if (turnBoundaryHalt === null || err !== turnBoundaryHalt) throw err; + controlledHalt = true; + } await target.waitForIdle(); + if (controlledHalt && !agentsWithEndEvent.has(target)) { + // The subscriber exception also bypasses pi's native agent_end event. + agentsWithEndEvent.add(target); + forwardAgentEvent({ type: 'agent_end', messages: target.state.messages }); + } assertNotCancelled(); } finally { input.signal?.removeEventListener('abort', abort); diff --git a/packages/core/src/context-budget.test.ts b/packages/core/src/context-budget.test.ts index bbc2f6177..7140140ed 100644 --- a/packages/core/src/context-budget.test.ts +++ b/packages/core/src/context-budget.test.ts @@ -1,4 +1,4 @@ -import type { AgentMessage } from '@mariozechner/pi-agent-core'; +import type { AgentMessage } from '@earendil-works/pi-agent-core'; import { describe, expect, it } from 'vitest'; import { planContextBudget } from './context-budget.js'; diff --git a/packages/core/src/context-budget.ts b/packages/core/src/context-budget.ts index c99e34604..bc8670632 100644 --- a/packages/core/src/context-budget.ts +++ b/packages/core/src/context-budget.ts @@ -1,6 +1,6 @@ -import type { AgentMessage } from '@mariozechner/pi-agent-core'; -import type { AssistantMessage } from '@mariozechner/pi-ai'; -import { estimateTokens as estimatePiTokens } from '@mariozechner/pi-coding-agent'; +import type { AgentMessage } from '@earendil-works/pi-agent-core'; +import type { AssistantMessage } from '@earendil-works/pi-ai'; +import { estimateTokens as estimatePiTokens } from '@earendil-works/pi-coding-agent'; import { CodesignError, ERROR_CODES } from '@open-codesign/shared'; /** pi's estimate for one image (`estimateTokens` counts images in tool results as 1,200 tokens). */ diff --git a/packages/core/src/context-prune.test.ts b/packages/core/src/context-prune.test.ts index ace624347..f797e98ef 100644 --- a/packages/core/src/context-prune.test.ts +++ b/packages/core/src/context-prune.test.ts @@ -1,4 +1,4 @@ -import type { AgentMessage } from '@mariozechner/pi-agent-core'; +import type { AgentMessage } from '@earendil-works/pi-agent-core'; import { describe, expect, it, vi } from 'vitest'; import { buildTransformContext } from './context-prune.js'; import type { CoreLogger } from './logger.js'; diff --git a/packages/core/src/context-prune.ts b/packages/core/src/context-prune.ts index 36ab3a14d..b7689a552 100644 --- a/packages/core/src/context-prune.ts +++ b/packages/core/src/context-prune.ts @@ -42,7 +42,7 @@ * blocks. */ -import type { AgentMessage } from '@mariozechner/pi-agent-core'; +import type { AgentMessage } from '@earendil-works/pi-agent-core'; import { type CoreLogger, NOOP_LOGGER } from './logger.js'; const TEXT_BLOCK_LIMIT = 8 * 1024; diff --git a/packages/core/src/context-window.test.ts b/packages/core/src/context-window.test.ts index c774a0a57..3465f42ef 100644 --- a/packages/core/src/context-window.test.ts +++ b/packages/core/src/context-window.test.ts @@ -6,7 +6,7 @@ const catalog: Record> = { google: [{ id: 'gemini-2.5-pro', contextWindow: 1_048_576 }], }; -vi.mock('@mariozechner/pi-ai', () => ({ +vi.mock('@earendil-works/pi-ai', () => ({ getProviders: () => Object.keys(catalog), getModels: (provider: string) => catalog[provider] ?? [], })); diff --git a/packages/core/src/context-window.ts b/packages/core/src/context-window.ts index 634df499d..4785506f7 100644 --- a/packages/core/src/context-window.ts +++ b/packages/core/src/context-window.ts @@ -1,4 +1,4 @@ -import { getModels, getProviders, type KnownProvider } from '@mariozechner/pi-ai'; +import { getModels, getProviders, type KnownProvider } from '@earendil-works/pi-ai'; import { normalizeGeminiModelId } from '@open-codesign/providers'; import type { ModelRef } from '@open-codesign/shared'; diff --git a/packages/core/src/design-context.test.ts b/packages/core/src/design-context.test.ts index 1f809187f..94581fc93 100644 --- a/packages/core/src/design-context.test.ts +++ b/packages/core/src/design-context.test.ts @@ -1,4 +1,4 @@ -import type { AgentMessage } from '@mariozechner/pi-agent-core'; +import type { AgentMessage } from '@earendil-works/pi-agent-core'; import { CompletionLengthError } from '@open-codesign/providers'; import type { ChatMessageRow, diff --git a/packages/core/src/design-context.ts b/packages/core/src/design-context.ts index ed90ec558..3d68c086f 100644 --- a/packages/core/src/design-context.ts +++ b/packages/core/src/design-context.ts @@ -1,4 +1,4 @@ -import type { AgentMessage } from '@mariozechner/pi-agent-core'; +import type { AgentMessage } from '@earendil-works/pi-agent-core'; import { CompletionLengthError, completeWithRetry, diff --git a/packages/core/src/memory.test.ts b/packages/core/src/memory.test.ts index 35bbcbe8f..6c2cf6aa8 100644 --- a/packages/core/src/memory.test.ts +++ b/packages/core/src/memory.test.ts @@ -1,4 +1,4 @@ -import type { AgentMessage } from '@mariozechner/pi-agent-core'; +import type { AgentMessage } from '@earendil-works/pi-agent-core'; import { describe, expect, it } from 'vitest'; import { formatMemoryContext, diff --git a/packages/core/src/memory.ts b/packages/core/src/memory.ts index ab7e41e3d..5c6d827ec 100644 --- a/packages/core/src/memory.ts +++ b/packages/core/src/memory.ts @@ -8,7 +8,7 @@ * - DesignSessionBrief is a compact JSONL cache derived from these sources. */ -import type { AgentMessage } from '@mariozechner/pi-agent-core'; +import type { AgentMessage } from '@earendil-works/pi-agent-core'; import { completeWithRetry } from '@open-codesign/providers'; import type { ChatMessage, ModelRef, ReasoningLevel, WireApi } from '@open-codesign/shared'; import { remapProviderError } from './errors.js'; diff --git a/packages/core/src/tools/ask.ts b/packages/core/src/tools/ask.ts index f4b269226..00c36e625 100644 --- a/packages/core/src/tools/ask.ts +++ b/packages/core/src/tools/ask.ts @@ -1,4 +1,4 @@ -import type { AgentTool, AgentToolResult } from '@mariozechner/pi-agent-core'; +import type { AgentTool, AgentToolResult } from '@earendil-works/pi-agent-core'; import { type Static, Type } from '@sinclair/typebox'; /** diff --git a/packages/core/src/tools/decompose-to-ui-kit.ts b/packages/core/src/tools/decompose-to-ui-kit.ts index 30cba02bc..fe33a67dd 100644 --- a/packages/core/src/tools/decompose-to-ui-kit.ts +++ b/packages/core/src/tools/decompose-to-ui-kit.ts @@ -12,7 +12,7 @@ * ui_kits//README.md handoff notes for downstream coding agent */ -import type { AgentTool, AgentToolResult } from '@mariozechner/pi-agent-core'; +import type { AgentTool, AgentToolResult } from '@earendil-works/pi-agent-core'; import { Type } from '@sinclair/typebox'; import { type CoreLogger, NOOP_LOGGER } from '../logger.js'; import type { TextEditorFsCallbacks } from './text-editor'; diff --git a/packages/core/src/tools/done.ts b/packages/core/src/tools/done.ts index c4867b6a7..d1b68573f 100644 --- a/packages/core/src/tools/done.ts +++ b/packages/core/src/tools/done.ts @@ -14,7 +14,7 @@ * self-heals via `str_replace_based_edit_tool` and calls `done` again. */ -import type { AgentTool, AgentToolResult } from '@mariozechner/pi-agent-core'; +import type { AgentTool, AgentToolResult } from '@earendil-works/pi-agent-core'; import { DEFAULT_SOURCE_ENTRY, LEGACY_SOURCE_ENTRY, validateDesignMd } from '@open-codesign/shared'; import { Type } from '@sinclair/typebox'; import type { TextEditorFsCallbacks } from './text-editor.js'; diff --git a/packages/core/src/tools/generate-image-asset.ts b/packages/core/src/tools/generate-image-asset.ts index a0126a97c..b5c2c277b 100644 --- a/packages/core/src/tools/generate-image-asset.ts +++ b/packages/core/src/tools/generate-image-asset.ts @@ -1,4 +1,4 @@ -import type { AgentTool, AgentToolResult } from '@mariozechner/pi-agent-core'; +import type { AgentTool, AgentToolResult } from '@earendil-works/pi-agent-core'; import { DEFAULT_SOURCE_ENTRY } from '@open-codesign/shared'; import { Type } from '@sinclair/typebox'; import { type CoreLogger, NOOP_LOGGER } from '../logger.js'; diff --git a/packages/core/src/tools/inspect-workspace.ts b/packages/core/src/tools/inspect-workspace.ts index 8ee25aa4c..2455ebee2 100644 --- a/packages/core/src/tools/inspect-workspace.ts +++ b/packages/core/src/tools/inspect-workspace.ts @@ -1,4 +1,4 @@ -import type { AgentTool, AgentToolResult } from '@mariozechner/pi-agent-core'; +import type { AgentTool, AgentToolResult } from '@earendil-works/pi-agent-core'; import { Type } from '@sinclair/typebox'; import { diff --git a/packages/core/src/tools/preview.test.ts b/packages/core/src/tools/preview.test.ts index 20df600eb..0263a4774 100644 --- a/packages/core/src/tools/preview.test.ts +++ b/packages/core/src/tools/preview.test.ts @@ -1,9 +1,9 @@ -import { Agent } from '@mariozechner/pi-agent-core'; +import { Agent } from '@earendil-works/pi-agent-core'; import { type AssistantMessage, createAssistantMessageEventStream, getModel, -} from '@mariozechner/pi-ai'; +} from '@earendil-works/pi-ai'; import { CodesignError } from '@open-codesign/shared'; import { describe, expect, it, vi } from 'vitest'; import { diff --git a/packages/core/src/tools/preview.ts b/packages/core/src/tools/preview.ts index 44fba6724..a258c45b7 100644 --- a/packages/core/src/tools/preview.ts +++ b/packages/core/src/tools/preview.ts @@ -1,5 +1,5 @@ -import type { AgentTool, AgentToolResult } from '@mariozechner/pi-agent-core'; -import type { ImageContent, TextContent } from '@mariozechner/pi-ai'; +import type { AgentTool, AgentToolResult } from '@earendil-works/pi-agent-core'; +import type { ImageContent, TextContent } from '@earendil-works/pi-ai'; import { CodesignError, ERROR_CODES } from '@open-codesign/shared'; import { type Static, Type } from '@sinclair/typebox'; import { Value } from '@sinclair/typebox/value'; diff --git a/packages/core/src/tools/scaffold.ts b/packages/core/src/tools/scaffold.ts index 68c56a161..ea181b7a1 100644 --- a/packages/core/src/tools/scaffold.ts +++ b/packages/core/src/tools/scaffold.ts @@ -1,6 +1,6 @@ import { lstat, mkdir, readFile, writeFile } from 'node:fs/promises'; import path from 'node:path'; -import type { AgentTool, AgentToolResult } from '@mariozechner/pi-agent-core'; +import type { AgentTool, AgentToolResult } from '@earendil-works/pi-agent-core'; import { normalizeLegacyEditmodeBlock } from '@open-codesign/shared'; import { withWorkspaceFileWriter } from '@open-codesign/shared/workspace-file-lock'; import { Type } from '@sinclair/typebox'; diff --git a/packages/core/src/tools/set-title.ts b/packages/core/src/tools/set-title.ts index f58430f80..b2d817000 100644 --- a/packages/core/src/tools/set-title.ts +++ b/packages/core/src/tools/set-title.ts @@ -13,7 +13,7 @@ * punctuation is stripped before the event fires. */ -import type { AgentTool, AgentToolResult } from '@mariozechner/pi-agent-core'; +import type { AgentTool, AgentToolResult } from '@earendil-works/pi-agent-core'; import { Type } from '@sinclair/typebox'; const SetTitleParams = Type.Object({ diff --git a/packages/core/src/tools/set-todos.ts b/packages/core/src/tools/set-todos.ts index 4bbc4f815..47a848900 100644 --- a/packages/core/src/tools/set-todos.ts +++ b/packages/core/src/tools/set-todos.ts @@ -12,7 +12,7 @@ * already consumes (`args.items: Array<{text, checked}>`). */ -import type { AgentTool, AgentToolResult } from '@mariozechner/pi-agent-core'; +import type { AgentTool, AgentToolResult } from '@earendil-works/pi-agent-core'; import { Type } from '@sinclair/typebox'; const SetTodosParams = Type.Object({ diff --git a/packages/core/src/tools/skill.ts b/packages/core/src/tools/skill.ts index d8483a3aa..72c05bcd5 100644 --- a/packages/core/src/tools/skill.ts +++ b/packages/core/src/tools/skill.ts @@ -1,6 +1,6 @@ import { lstat, readdir, readFile } from 'node:fs/promises'; import path from 'node:path'; -import type { AgentTool, AgentToolResult } from '@mariozechner/pi-agent-core'; +import type { AgentTool, AgentToolResult } from '@earendil-works/pi-agent-core'; import { CodesignError, ERROR_CODES } from '@open-codesign/shared'; import { Type } from '@sinclair/typebox'; diff --git a/packages/core/src/tools/text-editor.ts b/packages/core/src/tools/text-editor.ts index a8f75738b..e23105cde 100644 --- a/packages/core/src/tools/text-editor.ts +++ b/packages/core/src/tools/text-editor.ts @@ -10,7 +10,7 @@ * package must NOT depend on apps/desktop). */ -import type { AgentTool, AgentToolResult } from '@mariozechner/pi-agent-core'; +import type { AgentTool, AgentToolResult } from '@earendil-works/pi-agent-core'; import { DEFAULT_SOURCE_ENTRY } from '@open-codesign/shared'; import { Type } from '@sinclair/typebox'; diff --git a/packages/core/src/tools/tweaks.ts b/packages/core/src/tools/tweaks.ts index 03ede4d1a..532ca58a7 100644 --- a/packages/core/src/tools/tweaks.ts +++ b/packages/core/src/tools/tweaks.ts @@ -14,7 +14,7 @@ * scanner results neither register controls nor bind values to the preview. */ -import type { AgentTool, AgentToolResult } from '@mariozechner/pi-agent-core'; +import type { AgentTool, AgentToolResult } from '@earendil-works/pi-agent-core'; import { type EditmodeTokens, type EditmodeTokenValue, diff --git a/packages/core/src/tools/verify-ui-kit-parity.ts b/packages/core/src/tools/verify-ui-kit-parity.ts index 33018221e..557b1731a 100644 --- a/packages/core/src/tools/verify-ui-kit-parity.ts +++ b/packages/core/src/tools/verify-ui-kit-parity.ts @@ -16,7 +16,7 @@ * own turn so it can self-correct before calling done. */ -import type { AgentTool, AgentToolResult } from '@mariozechner/pi-agent-core'; +import type { AgentTool, AgentToolResult } from '@earendil-works/pi-agent-core'; import { Type } from '@sinclair/typebox'; import { type CoreLogger, NOOP_LOGGER } from '../logger.js'; import type { TextEditorFsCallbacks } from './text-editor'; diff --git a/packages/core/src/tools/verify-ui-kit-visual-parity.ts b/packages/core/src/tools/verify-ui-kit-visual-parity.ts index 462e07c56..38e520fee 100644 --- a/packages/core/src/tools/verify-ui-kit-visual-parity.ts +++ b/packages/core/src/tools/verify-ui-kit-visual-parity.ts @@ -28,7 +28,7 @@ * status="unavailable" and the agent falls back to verify_ui_kit_parity. */ -import type { AgentTool, AgentToolResult } from '@mariozechner/pi-agent-core'; +import type { AgentTool, AgentToolResult } from '@earendil-works/pi-agent-core'; import { Type } from '@sinclair/typebox'; import { type CoreLogger, NOOP_LOGGER } from '../logger.js'; import type { TextEditorFsCallbacks } from './text-editor'; diff --git a/packages/core/src/tools/web-research.ts b/packages/core/src/tools/web-research.ts index 720369852..4c2d67632 100644 --- a/packages/core/src/tools/web-research.ts +++ b/packages/core/src/tools/web-research.ts @@ -1,4 +1,4 @@ -import type { AgentTool } from '@mariozechner/pi-agent-core'; +import type { AgentTool } from '@earendil-works/pi-agent-core'; import { EvidenceInputSchema, type ResearchHost } from '@open-codesign/shared'; import { type TSchema, Type } from '@sinclair/typebox'; diff --git a/packages/providers/package.json b/packages/providers/package.json index c365b623f..0d9f44da4 100644 --- a/packages/providers/package.json +++ b/packages/providers/package.json @@ -14,7 +14,7 @@ "test": "vitest run --passWithNoTests" }, "dependencies": { - "@mariozechner/pi-ai": "^0.72.1", + "@earendil-works/pi-ai": "^0.79.0", "@open-codesign/shared": "workspace:*" }, "devDependencies": { diff --git a/packages/providers/src/index.test.ts b/packages/providers/src/index.test.ts index 6293bca81..974889e0f 100644 --- a/packages/providers/src/index.test.ts +++ b/packages/providers/src/index.test.ts @@ -4,7 +4,7 @@ import { afterEach, describe, expect, it, vi } from 'vitest'; const getModelMock = vi.fn(); const completeSimpleMock = vi.fn(); -vi.mock('@mariozechner/pi-ai', () => ({ +vi.mock('@earendil-works/pi-ai', () => ({ getModel: (...args: unknown[]) => getModelMock(...args), completeSimple: (...args: unknown[]) => completeSimpleMock(...args), })); diff --git a/packages/providers/src/index.ts b/packages/providers/src/index.ts index 63fa76b04..dc3375626 100644 --- a/packages/providers/src/index.ts +++ b/packages/providers/src/index.ts @@ -1,5 +1,5 @@ /** - * Wrappers around @mariozechner/pi-ai that fill capability gaps documented + * Wrappers around @earendil-works/pi-ai that fill capability gaps documented * in docs/research/05-pi-ai-boundary.md. App code MUST go through this * package - never import a provider SDK directly. * @@ -378,7 +378,7 @@ export async function complete( // keeps the prefixed form so provider/model UX stays in sync with /models. const effectiveModelId = normalizeGeminiModelId(model.modelId, opts.baseUrl); - const pi = (await import('@mariozechner/pi-ai')) as unknown as { + const pi = (await import('@earendil-works/pi-ai')) as unknown as { getModel: (provider: string, modelId: string) => PiModel | undefined; completeSimple: ( model: PiModel, diff --git a/packages/providers/src/native-search.test.ts b/packages/providers/src/native-search.test.ts index 36778cc3d..0a449d3c8 100644 --- a/packages/providers/src/native-search.test.ts +++ b/packages/providers/src/native-search.test.ts @@ -3,7 +3,7 @@ import { createAssistantMessageEventStream, getModel, type SimpleStreamOptions, -} from '@mariozechner/pi-ai'; +} from '@earendil-works/pi-ai'; import { describe, expect, it, vi } from 'vitest'; import { createNativeSearchStream, diff --git a/packages/providers/src/native-search.ts b/packages/providers/src/native-search.ts index 88fb3e6d7..7b7933afd 100644 --- a/packages/providers/src/native-search.ts +++ b/packages/providers/src/native-search.ts @@ -7,7 +7,7 @@ import { type Model, type SimpleStreamOptions, streamSimple, -} from '@mariozechner/pi-ai'; +} from '@earendil-works/pi-ai'; import type { WebCitation } from '@open-codesign/shared'; export interface NativeSearchSource { diff --git a/packages/providers/src/pi-native-hook.test.ts b/packages/providers/src/pi-native-hook.test.ts index 0b7685b12..78b78fe23 100644 --- a/packages/providers/src/pi-native-hook.test.ts +++ b/packages/providers/src/pi-native-hook.test.ts @@ -3,7 +3,7 @@ import { getModel, type SimpleStreamOptions, streamSimple, -} from '@mariozechner/pi-ai'; +} from '@earendil-works/pi-ai'; import { afterEach, expect, it, vi } from 'vitest'; import { createNativeSearchStream } from './native-search'; diff --git a/patches/@mariozechner__pi-ai@0.72.1.patch b/patches/@earendil-works__pi-ai@0.79.10.patch similarity index 80% rename from patches/@mariozechner__pi-ai@0.72.1.patch rename to patches/@earendil-works__pi-ai@0.79.10.patch index 6ceed086c..8c08675f7 100644 --- a/patches/@mariozechner__pi-ai@0.72.1.patch +++ b/patches/@earendil-works__pi-ai@0.79.10.patch @@ -1,8 +1,8 @@ diff --git a/dist/providers/anthropic.js b/dist/providers/anthropic.js -index 3f0cc9aef9fc12485096f89362fc89884ecf87a9..2adad291bae6bf54d21fd941db650fcd494db7ac 100644 +index fdffa11..05f6568 100644 --- a/dist/providers/anthropic.js +++ b/dist/providers/anthropic.js -@@ -329,6 +329,7 @@ export const streamAnthropic = (model, context, options) => { +@@ -342,6 +342,7 @@ export const streamAnthropic = (model, context, options) => { stream.push({ type: "start", partial: output }); const blocks = output.content; for await (const event of iterateAnthropicEvents(response, options?.signal)) { @@ -10,7 +10,7 @@ index 3f0cc9aef9fc12485096f89362fc89884ecf87a9..2adad291bae6bf54d21fd941db650fcd if (event.type === "message_start") { output.responseId = event.message.id; // Capture initial token usage from message_start event -@@ -797,6 +798,10 @@ function convertMessages(messages, model, isOAuthToken, cacheControl) { +@@ -813,6 +814,10 @@ function convertMessages(messages, model, isOAuthToken, cacheControl, allowEmpty } } else if (msg.role === "assistant") { @@ -22,10 +22,10 @@ index 3f0cc9aef9fc12485096f89362fc89884ecf87a9..2adad291bae6bf54d21fd941db650fcd for (const block of msg.content) { if (block.type === "text") { diff --git a/dist/providers/openai-responses-shared.js b/dist/providers/openai-responses-shared.js -index 3081455a347db90995fd51f654d0ec48f16cc73d..3d33f7279e83ef3e81133e2ff5e1e90ff66865bf 100644 +index 3d970f3..a86ba4e 100644 --- a/dist/providers/openai-responses-shared.js +++ b/dist/providers/openai-responses-shared.js -@@ -101,6 +101,10 @@ export function convertResponsesMessages(model, context, allowedToolCallProvider +@@ -102,6 +102,10 @@ export function convertResponsesMessages(model, context, allowedToolCallProvider } } else if (msg.role === "assistant") { @@ -37,10 +37,10 @@ index 3081455a347db90995fd51f654d0ec48f16cc73d..3d33f7279e83ef3e81133e2ff5e1e90f const assistantMsg = msg; const isDifferentModel = assistantMsg.model !== model.id && diff --git a/dist/providers/openai-responses.js b/dist/providers/openai-responses.js -index 0c7ec025b680f6229f041c1cdcb58d17eb33eabf..a0a6508b2c73449f440af66aaa28c3c36791af1d 100644 +index 2758610..ea0292f 100644 --- a/dist/providers/openai-responses.js +++ b/dist/providers/openai-responses.js -@@ -73,7 +73,13 @@ export const streamOpenAIResponses = (model, context, options) => { +@@ -95,7 +95,13 @@ export const streamOpenAIResponses = (model, context, options) => { const { data: openaiStream, response } = await client.responses.create(params, requestOptions).withResponse(); await options?.onResponse?.({ status: response.status, headers: headersToRecord(response.headers) }, model); stream.push({ type: "start", partial: output }); @@ -56,22 +56,22 @@ index 0c7ec025b680f6229f041c1cdcb58d17eb33eabf..a0a6508b2c73449f440af66aaa28c3c3 applyServiceTierPricing: (usage, serviceTier) => applyServiceTierPricing(usage, serviceTier, model), }); diff --git a/dist/providers/simple-options.js b/dist/providers/simple-options.js -index 64c0447b9d0c33454d13bc6697ba67e815721e93..1f7357bb7e9cbd055ca1585a03ecdc8b0e491f17 100644 +index 45d8e55..c57aa7b 100644 --- a/dist/providers/simple-options.js +++ b/dist/providers/simple-options.js -@@ -10,6 +10,7 @@ export function buildBaseOptions(model, options, apiKey) { +@@ -10,6 +10,7 @@ export function buildBaseOptions(_model, options, apiKey) { headers: options?.headers, onPayload: options?.onPayload, onResponse: options?.onResponse, + onNativeEvent: options?.onNativeEvent, timeoutMs: options?.timeoutMs, + websocketConnectTimeoutMs: options?.websocketConnectTimeoutMs, maxRetries: options?.maxRetries, - maxRetryDelayMs: options?.maxRetryDelayMs, diff --git a/dist/types.d.ts b/dist/types.d.ts -index e5bbb051d5d895c6722bfe58225358e335965dd6..1b19467b681bcc9d6d88d36a42b1725d91c7bb35 100644 +index b2a00df..2f7cb6f 100644 --- a/dist/types.d.ts +++ b/dist/types.d.ts -@@ -20,7 +20,15 @@ export interface ProviderResponse { +@@ -31,7 +31,15 @@ export interface ProviderResponse { status: number; headers: Record; } @@ -87,7 +87,7 @@ index e5bbb051d5d895c6722bfe58225358e335965dd6..1b19467b681bcc9d6d88d36a42b1725d temperature?: number; maxTokens?: number; signal?: AbortSignal; -@@ -141,6 +149,7 @@ export interface UserMessage { +@@ -209,6 +217,7 @@ export interface UserMessage { timestamp: number; } export interface AssistantMessage { diff --git a/patches/README.md b/patches/README.md index 9417ccddc..fc2f8ce51 100644 --- a/patches/README.md +++ b/patches/README.md @@ -1,8 +1,8 @@ # Dependency compatibility patches -## pi-ai 0.72.1 hosted web search +## pi-ai 0.79.10 hosted web search -`@mariozechner__pi-ai@0.72.1.patch` adds an awaited raw-event hook to the existing OpenAI Responses and Anthropic providers, forwards it through simple options, and preserves same-provider/model native tool output during message conversion. It does not add a provider SDK or HTTP implementation. The MIT-licensed pi dependency and its pinned version remain unchanged. +`@earendil-works__pi-ai@0.79.10.patch` adds an awaited raw-event hook to the existing OpenAI Responses and Anthropic providers, forwards it through simple options, and preserves same-provider/model native tool output during message conversion. It does not add a provider SDK or HTTP implementation. The MIT-licensed pi dependency and its pinned version remain unchanged. The Open CoDesign pi adapter owns search authorization, request accounting, citation normalization, and bounded Claude pause continuation. Provider-specific output stays in local JSONL sessions for replay; it is never replayed to a different model or provider. Synthetic protocol tests are in the providers package. Re-evaluate this patch against upstream when updating pi; do not edit installed dependency files. diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5c225bb27..0095deeea 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,15 +7,17 @@ settings: overrides: '@xmldom/xmldom@<0.8.15': 0.8.15 pptxgenjs@4.0.1>image-size: '-' + undici@>=8.0.0 <8.12.4: 8.12.4 + undici@>=7.0.0 <7.30.1: 7.30.1 fast-xml-parser@<5.7.0: '>=5.7.0' vitepress>vite: 6.4.2 esbuild@<0.25.0: '>=0.25.0' tar@<7.5.22: 7.5.22 patchedDependencies: - '@mariozechner/pi-ai@0.72.1': - hash: aac5f6f7549c467fcf2fc41b1a0e606275121a1c3d4216f4708ba85b143b5a84 - path: patches/@mariozechner__pi-ai@0.72.1.patch + '@earendil-works/pi-ai@0.79.10': + hash: 237eec523e8d0cce9b558e208826f47a9eb48ab349831efa35a55dcb76206f6a + path: patches/@earendil-works__pi-ai@0.79.10.patch pptxgenjs@4.0.1: hash: 404d3c108d40771d3932ee137efd5c72847a3a26c2e0f68c365045db9e6280f5 path: patches/pptxgenjs@4.0.1.patch @@ -81,7 +83,7 @@ importers: version: 6.0.3 vitest: specifier: ^4.1.12 - version: 4.1.12(@types/node@22.20.5)(happy-dom@21.0.4)(vite@8.0.10(@types/node@22.20.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.3)(yaml@2.9.0)) + version: 4.1.12(@opentelemetry/api@1.9.0)(@types/node@22.20.5)(happy-dom@21.0.4)(vite@8.0.10(@types/node@22.20.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.3)(yaml@2.9.0)) apps/desktop: dependencies: @@ -101,18 +103,18 @@ importers: specifier: ^24.42.0 version: 24.42.0 undici: - specifier: ^7.30.1 - version: 7.30.1 + specifier: 8.12.4 + version: 8.12.4 devDependencies: - '@mariozechner/pi-agent-core': - specifier: ^0.72.1 - version: 0.72.1(ws@8.22.2)(zod@4.4.2) - '@mariozechner/pi-ai': - specifier: ^0.72.1 - version: 0.72.1(patch_hash=aac5f6f7549c467fcf2fc41b1a0e606275121a1c3d4216f4708ba85b143b5a84)(ws@8.22.2)(zod@4.4.2) - '@mariozechner/pi-coding-agent': - specifier: ^0.72.1 - version: 0.72.1(ws@8.22.2)(zod@4.4.2) + '@earendil-works/pi-agent-core': + specifier: ^0.79.0 + version: 0.79.10(ws@8.22.2)(zod@4.4.2) + '@earendil-works/pi-ai': + specifier: ^0.79.0 + version: 0.79.10(patch_hash=237eec523e8d0cce9b558e208826f47a9eb48ab349831efa35a55dcb76206f6a)(ws@8.22.2)(zod@4.4.2) + '@earendil-works/pi-coding-agent': + specifier: ^0.79.0 + version: 0.79.10(ws@8.22.2)(zod@4.4.2) '@open-codesign/artifacts': specifier: workspace:* version: link:../../packages/artifacts @@ -157,7 +159,7 @@ importers: version: 5.2.0(vite@7.3.6(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.33.0)(tsx@4.22.3)(yaml@2.9.0)) autoprefixer: specifier: ^10.4.20 - version: 10.5.0(postcss@8.5.32) + version: 10.5.0(postcss@8.5.31) electron: specifier: ^41.10.6 version: 41.10.6 @@ -208,7 +210,7 @@ importers: version: 7.3.6(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.33.0)(tsx@4.22.3)(yaml@2.9.0) vitest: specifier: ^4.1.12 - version: 4.1.12(@types/node@22.20.5)(happy-dom@21.0.4)(vite@7.3.6(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.33.0)(tsx@4.22.3)(yaml@2.9.0)) + version: 4.1.12(@opentelemetry/api@1.9.0)(@types/node@22.20.5)(happy-dom@21.0.4)(vite@7.3.6(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.33.0)(tsx@4.22.3)(yaml@2.9.0)) zip-lib: specifier: ^1.0.4 version: 1.3.2 @@ -230,19 +232,19 @@ importers: version: 6.0.3 vitest: specifier: ^4.1.12 - version: 4.1.12(@types/node@26.6.5)(happy-dom@21.0.4)(vite@8.0.10(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.3)(yaml@2.9.0)) + version: 4.1.12(@opentelemetry/api@1.9.0)(@types/node@26.6.5)(happy-dom@21.0.4)(vite@8.0.10(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.3)(yaml@2.9.0)) packages/core: dependencies: - '@mariozechner/pi-agent-core': - specifier: ^0.72.1 - version: 0.72.1(ws@8.22.2)(zod@4.4.2) - '@mariozechner/pi-ai': - specifier: ^0.72.1 - version: 0.72.1(patch_hash=aac5f6f7549c467fcf2fc41b1a0e606275121a1c3d4216f4708ba85b143b5a84)(ws@8.22.2)(zod@4.4.2) - '@mariozechner/pi-coding-agent': - specifier: ^0.72.1 - version: 0.72.1(ws@8.22.2)(zod@4.4.2) + '@earendil-works/pi-agent-core': + specifier: ^0.79.0 + version: 0.79.10(ws@8.22.2)(zod@4.4.2) + '@earendil-works/pi-ai': + specifier: ^0.79.0 + version: 0.79.10(patch_hash=237eec523e8d0cce9b558e208826f47a9eb48ab349831efa35a55dcb76206f6a)(ws@8.22.2)(zod@4.4.2) + '@earendil-works/pi-coding-agent': + specifier: ^0.79.0 + version: 0.79.10(ws@8.22.2)(zod@4.4.2) '@open-codesign/providers': specifier: workspace:* version: link:../providers @@ -258,7 +260,7 @@ importers: version: 6.0.3 vitest: specifier: ^4.1.12 - version: 4.1.12(@types/node@26.6.5)(happy-dom@21.0.4)(vite@8.0.10(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.3)(yaml@2.9.0)) + version: 4.1.12(@opentelemetry/api@1.9.0)(@types/node@26.6.5)(happy-dom@21.0.4)(vite@8.0.10(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.3)(yaml@2.9.0)) packages/exporters: dependencies: @@ -289,7 +291,7 @@ importers: version: 6.0.3 vitest: specifier: ^4.1.12 - version: 4.1.12(@types/node@22.20.5)(happy-dom@21.0.4)(vite@8.0.10(@types/node@22.20.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.3)(yaml@2.9.0)) + version: 4.1.12(@opentelemetry/api@1.9.0)(@types/node@22.20.5)(happy-dom@21.0.4)(vite@8.0.10(@types/node@22.20.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.3)(yaml@2.9.0)) packages/i18n: dependencies: @@ -314,13 +316,13 @@ importers: version: 6.0.3 vitest: specifier: ^4.1.12 - version: 4.1.12(@types/node@26.6.5)(happy-dom@21.0.4)(vite@8.0.10(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.3)(yaml@2.9.0)) + version: 4.1.12(@opentelemetry/api@1.9.0)(@types/node@26.6.5)(happy-dom@21.0.4)(vite@8.0.10(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.3)(yaml@2.9.0)) packages/providers: dependencies: - '@mariozechner/pi-ai': - specifier: ^0.72.1 - version: 0.72.1(patch_hash=aac5f6f7549c467fcf2fc41b1a0e606275121a1c3d4216f4708ba85b143b5a84)(ws@8.22.2)(zod@4.4.2) + '@earendil-works/pi-ai': + specifier: ^0.79.0 + version: 0.79.10(patch_hash=237eec523e8d0cce9b558e208826f47a9eb48ab349831efa35a55dcb76206f6a)(ws@8.22.2)(zod@4.4.2) '@open-codesign/shared': specifier: workspace:* version: link:../shared @@ -330,7 +332,7 @@ importers: version: 6.0.3 vitest: specifier: ^4.1.12 - version: 4.1.12(@types/node@26.6.5)(happy-dom@21.0.4)(vite@8.0.10(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.3)(yaml@2.9.0)) + version: 4.1.12(@opentelemetry/api@1.9.0)(@types/node@26.6.5)(happy-dom@21.0.4)(vite@8.0.10(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.3)(yaml@2.9.0)) packages/runtime: dependencies: @@ -343,7 +345,7 @@ importers: version: 6.0.3 vitest: specifier: ^4.1.12 - version: 4.1.12(@types/node@26.6.5)(happy-dom@21.0.4)(vite@8.0.10(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.3)(yaml@2.9.0)) + version: 4.1.12(@opentelemetry/api@1.9.0)(@types/node@26.6.5)(happy-dom@21.0.4)(vite@8.0.10(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.3)(yaml@2.9.0)) packages/shared: dependencies: @@ -359,7 +361,7 @@ importers: version: 6.0.3 vitest: specifier: ^4.1.12 - version: 4.1.12(@types/node@26.6.5)(happy-dom@21.0.4)(vite@8.0.10(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.3)(yaml@2.9.0)) + version: 4.1.12(@opentelemetry/api@1.9.0)(@types/node@26.6.5)(happy-dom@21.0.4)(vite@8.0.10(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.3)(yaml@2.9.0)) packages/templates: dependencies: @@ -375,7 +377,7 @@ importers: version: 6.0.3 vitest: specifier: ^4.1.12 - version: 4.1.12(@types/node@26.6.5)(happy-dom@21.0.4)(vite@8.0.10(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.3)(yaml@2.9.0)) + version: 4.1.12(@opentelemetry/api@1.9.0)(@types/node@26.6.5)(happy-dom@21.0.4)(vite@8.0.10(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.3)(yaml@2.9.0)) packages/ui: dependencies: @@ -418,7 +420,7 @@ importers: version: 6.0.3 vitest: specifier: ^4.1.12 - version: 4.1.12(@types/node@26.6.5)(happy-dom@21.0.4)(vite@8.0.10(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.3)(yaml@2.9.0)) + version: 4.1.12(@opentelemetry/api@1.9.0)(@types/node@26.6.5)(happy-dom@21.0.4)(vite@8.0.10(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.3)(yaml@2.9.0)) website: devDependencies: @@ -430,7 +432,7 @@ importers: version: 4.3.3 vitepress: specifier: ^1.6.4 - version: 1.6.4(@algolia/client-search@5.50.2)(@types/node@26.6.5)(jiti@2.7.0)(lightningcss@1.33.0)(postcss@8.5.32)(search-insights@2.17.3)(tsx@4.22.3)(typescript@6.0.3)(yaml@2.9.0) + version: 1.6.4(@algolia/client-search@5.50.2)(@types/node@26.6.5)(jiti@2.7.0)(lightningcss@1.33.0)(postcss@8.5.31)(search-insights@2.17.3)(tsx@4.22.3)(typescript@6.0.3)(yaml@2.9.0) packages: @@ -526,10 +528,6 @@ packages: zod: optional: true - '@aws-crypto/crc32@5.2.0': - resolution: {integrity: sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==} - engines: {node: '>=16.0.0'} - '@aws-crypto/sha256-browser@5.2.0': resolution: {integrity: sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==} @@ -543,132 +541,88 @@ packages: '@aws-crypto/util@5.2.0': resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} - '@aws-sdk/client-bedrock-runtime@3.1041.0': - resolution: {integrity: sha512-1QehYO3jhdvNQ5mOKtwIiNV04y4aywaNZw9HzCp7SSYCX4yy+AGXc2hhYjCiMDUvQPIELuvbR8MXw81NGAj8ZQ==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/core@3.974.8': - resolution: {integrity: sha512-njR2qoG6ZuB0kvAS2FyICsFZJ6gmCcf2X/7JcD14sUvGDm26wiZ5BrA6LOiUxKFEF+IVe7kdroxyE00YlkiYsw==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/credential-provider-env@3.972.34': - resolution: {integrity: sha512-XT0jtf8Fw9JE6ppsQeoNnZRiG+jqRixMT1v1ZR17G60UvVdsQmTG8nbEyHuEPfMxDXEhfdARaM/XiEhca4lGHQ==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/credential-provider-http@3.972.36': - resolution: {integrity: sha512-DPoGWfy7J7RKxvbf5kOKIGQkD2ek3dbKgzKIGrnLuvZBz5myU+Im/H6pmc14QcnFbqHMqxvtWSgRDSJW3qXLQg==} + '@aws-sdk/client-bedrock-runtime@3.1048.0': + resolution: {integrity: sha512-u+NT61JZEkRFtpL0CAw1N1dwxnaLgwVXQl/zjJxTGgLyS/jTIdg2SdoEoCTHxgDyCnqa1HEi9QOoE9/pYRNpOQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-ini@3.972.38': - resolution: {integrity: sha512-oDzUBu2MGJFgoar05sPMCwSrhw44ASyccrHzj66vO69OZqi7I6hZZxXfuPLC8OCzW7C+sU+bI73XHij41yekgQ==} + '@aws-sdk/core@3.978.4': + resolution: {integrity: sha512-JvGp6y9sPX8FSs2K/EmFMZcUfdkHxqGE45+oxwGC75OIh50j2e4cbx7zcR3BwNs2DSGqJdBja5h6Vy89iIDmRQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-login@3.972.38': - resolution: {integrity: sha512-g1NosS8qe4OF++G2UFCM5ovSkgipC7YYor5KCWatG0UoMSO5YFj9C8muePlyVmOBV/WTI16Jo3/s1NUo/o1Bww==} + '@aws-sdk/credential-provider-env@3.972.75': + resolution: {integrity: sha512-nc8Epg98PcYoKNx0VFlwtmZSCP+tuJ1FLWqpslET/gp4h/WYuULSJqtxppM6ywKKDdzNJPvLD7ceRfmxm3Qdxw==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-node@3.972.39': - resolution: {integrity: sha512-HEswDQyxUtadoZ/bJsPPENHg7R0Lzym5LuMksJeHvqhCOpP+rtkDLKI4/ZChH4w3cf5kG8n6bZuI8PzajoiqMg==} + '@aws-sdk/credential-provider-http@3.972.77': + resolution: {integrity: sha512-KkYFdIQwuw9IOHfEzK78slxmVWuhcm1w6YgE3V3WVxAeRRj9q5J9jlwzpY/oszWxd4SD96FTFkDdRGBdMFF2Mw==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-process@3.972.34': - resolution: {integrity: sha512-T3IFs4EVmVi1dVN5RciFnklCANSzvrQd/VuHY9ThHSQmYkTogjcGkoJEr+oNUPQZnso52183088NqysMPji1/Q==} + '@aws-sdk/credential-provider-ini@3.973.20': + resolution: {integrity: sha512-OSl2R/0zLkoeKEIy6oP2tu/bsSdY+DGgro2eOffMD2CcP8POv7rS14FY5Jzc5bjnqB1G9wv/aM1akHC2mdlhZw==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-sso@3.972.38': - resolution: {integrity: sha512-5ZxG+t0+3Q3QPh8KEjX6syskhgNf7I0MN7oGioTf6Lm1NTjfP7sIcYGNsthXC2qR8vcD3edNZwCr2ovfSSWuRA==} + '@aws-sdk/credential-provider-login@3.972.82': + resolution: {integrity: sha512-8jyDPtf1WPxeQ/5xlNpyxAD6P7YKwkYeNk8B2vFEDwkPWDvb7c3tQJG5/jbNWbF2yTMIH9tDTueBkdfovYIAPw==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-web-identity@3.972.38': - resolution: {integrity: sha512-lYHFF30DGI20jZcYX8cm6Ns0V7f1dDN6g/MBDLTyD/5iw+bXs3yBr2iAiHDkx4RFU5JgsnZvCHYKiRVPRdmOgw==} + '@aws-sdk/credential-provider-node@3.972.87': + resolution: {integrity: sha512-TKj2C0x4IMPSSOAlmeryX8fCPvvPS2pFJz2ikV9IGqyh6Ehsg4leMalCTVfV2rvMTrlGAe7X7nK0HZ3P0KZR9g==} engines: {node: '>=20.0.0'} - '@aws-sdk/eventstream-handler-node@3.972.14': - resolution: {integrity: sha512-m4X56gxG76/CKfxNVbOFuYwnAZcHgS6HOH8lgp15HoGHIAVTcZfZrXvcYzJFOMLEJgVn+JHBu6EiNV+xSNXXFg==} + '@aws-sdk/credential-provider-process@3.972.75': + resolution: {integrity: sha512-ZNm8T/HJNhpS8MikDVAsym8QyUSUuOUGiCkmI3TTya7G6xhOgfRLd2iK91HhQQyvRM36eo6Xm845hHVyfToA2w==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-eventstream@3.972.10': - resolution: {integrity: sha512-QUqLs7Af1II9X4fCRAu+EGHG3KHyOp4RkuLhRKoA3NuFlh6TL8i+zXBl8w2LUxqm44B/Kom45hgSlwA1SpTsXQ==} + '@aws-sdk/credential-provider-sso@3.973.19': + resolution: {integrity: sha512-qHGDAGesyWtRw3BapyFkYSUzVNrC1CWPS6+S2lf/MLMEkWB2gR3Bl6imVHy1nhImXKS+gcuUDzbu39BnsHJc1Q==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-host-header@3.972.10': - resolution: {integrity: sha512-IJSsIMeVQ8MMCPbuh1AbltkFhLBLXn7aejzfX5YKT/VLDHn++Dcz8886tXckE+wQssyPUhaXrJhdakO2VilRhg==} + '@aws-sdk/credential-provider-web-identity@3.972.81': + resolution: {integrity: sha512-nHkgkMIC6NHgqfI6UAQq5cCS4bUkNxkT+r9fXCq/X4IKfX/DHGZ8UM3T4b78OXpWK5OlzEzN4kxwyax0W/MUCA==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-logger@3.972.10': - resolution: {integrity: sha512-OOuGvvz1Dm20SjZo5oEBePFqxt5nf8AwkNDSyUHvD9/bfNASmstcYxFAHUowy4n6Io7mWUZ04JURZwSBvyQanQ==} + '@aws-sdk/eventstream-handler-node@3.972.37': + resolution: {integrity: sha512-vU0v4d6anhLqBCpPq7Q7hD2Av3/5qOR5O30Ze8ALLysgB3iMQTPHQ/P2aTgfrY2ZjnVJUCi7NiTSNqa1mDF+5w==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-recursion-detection@3.972.11': - resolution: {integrity: sha512-+zz6f79Kj9V5qFK2P+D8Ehjnw4AhphAlCAsPjUqEcInA9umtSSKMrHbSagEeOIsDNuvVrH98bjRHcyQukTrhaQ==} + '@aws-sdk/middleware-eventstream@3.972.32': + resolution: {integrity: sha512-D3ayeW/K2lTQI8+SyzDvAKfM3N4SFJjfgqeHbS3DOZmmQebZyve6WUyJiqOKqeOxmIcFxTzpSdsijnRF035J3g==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-sdk-s3@3.972.37': - resolution: {integrity: sha512-Km7M+i8DrLArVzrid1gfxeGhYHBd3uxvE77g0s5a52zPSVosxzQBnJ0gwWb6NIp/DOk8gsBMhi7V+cpJG0ndTA==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/middleware-user-agent@3.972.38': - resolution: {integrity: sha512-iz+B29TXcAZsJpwB+AwG/TTGA5l/VnmMZ2UxtiySOZjI6gCdmviXPwdgzcmuazMy16rXoPY4mYCGe7zdNKfx5A==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/middleware-websocket@3.972.16': - resolution: {integrity: sha512-86+S9oCyRVGzoMRpQhxkArp7kD2K75GPmaNevd9B6EyNhWoNvnCZZ3WbgN4j7ZT+jvtvBCGZvI2XHsWZJ+BRIg==} + '@aws-sdk/middleware-websocket@3.972.57': + resolution: {integrity: sha512-mPNUOedufUwZXISOEySSP7l7owyY0Ypp1ajsd1GsB4E5Vpaf8NtfmmNygyPPeGPsRZ1sOcS90aAhQ03yPy/pFg==} engines: {node: '>= 14.0.0'} - '@aws-sdk/nested-clients@3.997.6': - resolution: {integrity: sha512-WBDnqatJl+kGObpfmfSxqnXeYTu3Me8wx8WCtvoxX3pfWrrTv8I4WTMSSs7PZqcRcVh8WeUKMgGFjMG+52SR1w==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/region-config-resolver@3.972.13': - resolution: {integrity: sha512-CvJ2ZIjK/jVD/lbOpowBVElJyC1YxLTIJ13yM0AEo0t2v7swOzGjSA6lJGH+DwZXQhcjUjoYwc8bVYCX5MDr1A==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/signature-v4-multi-region@3.996.25': - resolution: {integrity: sha512-+CMIt3e1VzlklAECmG+DtP1sV8iKq25FuA0OKpnJ4KA0kxUtd7CgClY7/RU6VzJBQwbN4EJ9Ue6plvqx1qGadw==} + '@aws-sdk/nested-clients@3.997.49': + resolution: {integrity: sha512-zjqIqzTYLRKhT7TPJDUreK9vG9PjhmnfLCaTaqArkRT7j+Ogl0tuXB7MpSd8rlRfRT+xTOeyNFWaOfyNcf51hg==} engines: {node: '>=20.0.0'} - '@aws-sdk/token-providers@3.1041.0': - resolution: {integrity: sha512-Th7kPI6YPtvJUcdznooXJMy+9rQWjmEF81LxaJssngBzuysK4a/x+l8kjm1zb7nYsUPbndnBdUnwng/3PLvtGw==} + '@aws-sdk/signature-v4-multi-region@3.996.48': + resolution: {integrity: sha512-cFDXfEbXaGwbnpvR/DyqfxfjxpjXVRVthQLgkwvcfDS5u3+8G9WSj1X1Ag/pTRg/QOeOno1Tq3ycEdrKsCUcOA==} engines: {node: '>=20.0.0'} - '@aws-sdk/types@3.973.8': - resolution: {integrity: sha512-gjlAdtHMbtR9X5iIhVUvbVcy55KnznpC6bkDUWW9z915bi0ckdUr5cjf16Kp6xq0bP5HBD2xzgbL9F9Quv5vUw==} + '@aws-sdk/token-providers@3.1048.0': + resolution: {integrity: sha512-k0y/GcuesuSfWyUM0WamrGyeZmltRYaPbHO82UDA6mZ/doB+FOHKutikPAtSXMn/hDz970cF+iRuuiYO9VEbAA==} engines: {node: '>=20.0.0'} - '@aws-sdk/util-arn-parser@3.972.3': - resolution: {integrity: sha512-HzSD8PMFrvgi2Kserxuff5VitNq2sgf3w9qxmskKDiDTThWfVteJxuCS9JXiPIPtmCrp+7N9asfIaVhBFORllA==} + '@aws-sdk/token-providers@3.1153.0': + resolution: {integrity: sha512-6bKJ2OfLboxhzeJ3hBDeB8L6emCYf9DfdrjBAharLrY42J1RV/6jA6G8jvfNghzID8Yb40BdSY7jQMtWx9Ot0Q==} engines: {node: '>=20.0.0'} - '@aws-sdk/util-endpoints@3.996.8': - resolution: {integrity: sha512-oOZHcRDihk5iEe5V25NVWg45b3qEA8OpHWVdU/XQh8Zj4heVPAJqWvMphQnU7LkufmUo10EpvFPZuQMiFLJK3g==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/util-format-url@3.972.10': - resolution: {integrity: sha512-DEKiHNJVtNxdyTeQspzY+15Po/kHm6sF0Cs4HV9Q2+lplB63+DrvdeiSoOSdWEWAoO2RcY1veoXVDz2tWxWCgQ==} + '@aws-sdk/types@3.974.6': + resolution: {integrity: sha512-v/clNZzZnDxGyvpHMOGpJKVXFAExJzUNAAjaWGdcx8QAcXLGwTaOkw33p5SHAi0YAioK32xB3hWwOekRVfmfKg==} engines: {node: '>=20.0.0'} '@aws-sdk/util-locate-window@3.965.5': resolution: {integrity: sha512-WhlJNNINQB+9qtLtZJcpQdgZw3SCDCpXdUJP7cToGwHbCWCnRckGlc6Bx/OhWwIYFNAn+FIydY8SZ0QmVu3xTQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/util-user-agent-browser@3.972.10': - resolution: {integrity: sha512-FAzqXvfEssGdSIz8ejatan0bOdx1qefBWKF/gWmVBXIP1HkS7v/wjjaqrAGGKvyihrXTXW00/2/1nTJtxpXz7g==} - - '@aws-sdk/util-user-agent-node@3.973.24': - resolution: {integrity: sha512-ZWwlkjcIp7cEL8ZfTpTAPNkwx25p7xol0xlKoWVVf22+nsjwmLcHYtTPjIV1cSpmB/b6DaK4cb1fSkvCXHgRdw==} - engines: {node: '>=20.0.0'} - peerDependencies: - aws-crt: '>=1.0.0' - peerDependenciesMeta: - aws-crt: - optional: true - - '@aws-sdk/xml-builder@3.972.22': - resolution: {integrity: sha512-PMYKKtJd70IsSG0yHrdAbxBr+ZWBKLvzFZfD3/urxgf6hXVMzuU5M+3MJ5G67RpOmLBu1fAUN65SbWuKUCOlAA==} + '@aws-sdk/xml-builder@3.972.41': + resolution: {integrity: sha512-ctjVSyCMegrWfXlx6VqzSBFI6UqmQ5ZlnfMhdLIiWmhoH8UAQxSCP5N3OpG7X3k4LnS7ou74C4mt20+bfTW2aQ==} engines: {node: '>=20.0.0'} - '@aws/lambda-invoke-store@0.2.4': - resolution: {integrity: sha512-iY8yvjE0y651BixKNPgmv1WrQc+GZ142sb0z4gYnChDDY2YqI4P/jsSopBWrKfAt7LOJAkOXt7rC/hms+WclQQ==} + '@aws/lambda-invoke-store@0.3.0': + resolution: {integrity: sha512-sl4Bm6yiMNYrZKkqqDFWN0UfnWhlS8ivKxrYl+6t0gCLrqr8y3B2IqZZbFRkfaVVp7C/baApyh71P+LeE1A2sQ==} engines: {node: '>=18.0.0'} '@babel/code-frame@7.29.0': @@ -833,9 +787,6 @@ packages: cpu: [x64] os: [win32] - '@borewit/text-codec@0.2.2': - resolution: {integrity: sha512-DDaRehssg1aNrH4+2hnj1B7vnUGEjU6OIlyRdkMd0aUdIUvKXrJfXsy8LVtXAy7DRvYVluWbMspsRhz2lcW0mQ==} - '@changesets/apply-release-plan@7.1.1': resolution: {integrity: sha512-9qPCm/rLx/xoOFXIHGB229+4GOL76S4MC+7tyOuTsR6+1jYlfFDQORdvwR5hDA6y4FL2BPt3qpbcQIS+dW85LA==} @@ -918,6 +869,24 @@ packages: search-insights: optional: true + '@earendil-works/pi-agent-core@0.79.10': + resolution: {integrity: sha512-XKxgdjhcPuyjrthCOFSgfzT3xZ1uBrJ1IMVDxci1to6hIN6BIg9J5iY8q0pGXK1DLgATLP23da+1UyZLwA360Q==} + engines: {node: '>=22.19.0'} + + '@earendil-works/pi-ai@0.79.10': + resolution: {integrity: sha512-9jR23tOl0BIUdQMn70Gr72xYBpM7Xgl9Lyv7gAnU1USfkNRuYG/f/edLl+n/Dp/RafDW3JI4DF7y/GhgkORuew==} + engines: {node: '>=22.19.0'} + hasBin: true + + '@earendil-works/pi-coding-agent@0.79.10': + resolution: {integrity: sha512-YxaRhmgyDTvLDdGVbe7YzTHV80oL5mX5odg6EhGHz3w5Wu1Ix8DCw7bhtiOBLGQNFRcknia0zPmVWIj30XP1EA==} + engines: {node: '>=22.19.0'} + hasBin: true + + '@earendil-works/pi-tui@0.79.10': + resolution: {integrity: sha512-FUVOjDn1DVwM1uHD5MNYboXQrXjIDbSt+BQ3py7nQWCY62tKfxgiM1OBMxTcwRWLfSdZHUPpV0hm1loIdUJnPw==} + engines: {node: '>=22.19.0'} + '@electron-internal/extract-zip@1.0.5': resolution: {integrity: sha512-+bqFCP98pLI0Tt0XQo1TmlXtwjWchISndDOxCkEcIuUgXWpBnLyRI+2DU+mesvnMMX6L1XDqYNA0lXNDHd/yiA==} engines: {node: '>=22.12.0'} @@ -1453,8 +1422,8 @@ packages: '@fontsource-variable/jetbrains-mono@5.2.8': resolution: {integrity: sha512-WBA9elru6Jdp5df2mES55wuOO0WIrn3kpXnI4+W2ek5u3ZgLS9XS4gmIlcQhiZOWEKl95meYdvK7xI+ETLCq/Q==} - '@google/genai@1.51.0': - resolution: {integrity: sha512-vTZZF3CSimN7cn2zsLpW2p5WF0eZa5Gz69ITMPCNHpPrDlAstOfGifSfi0p/s9Z9400f7xJRkgvkQNrcM7pJ6w==} + '@google/genai@1.52.0': + resolution: {integrity: sha512-gwSvbpiN/17O9TbsqSsE/OzZcpv5Fo4RQjdngGgogtuB9RsyJ8ZHhX5KjHj1bp5N9snN2eK8LDGXSaWW2hof8Q==} engines: {node: '>=20.0.0'} peerDependencies: '@modelcontextprotocol/sdk': ^1.25.2 @@ -1518,102 +1487,81 @@ packages: '@manypkg/get-packages@1.1.3': resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} - '@mariozechner/clipboard-darwin-arm64@0.3.2': - resolution: {integrity: sha512-uBf6K7Je1ihsgvmWxA8UCGCeI+nbRVRXoarZdLjl6slz94Zs1tNKFZqx7aCI5O1i3e0B6ja82zZ06BWrl0MCVw==} + '@mariozechner/clipboard-darwin-arm64@0.3.9': + resolution: {integrity: sha512-BfgV7vCEWZwJwZJw03r6bP5+tf0iI/ANuQYCxi9RNn7FrWB3yzGuMKCrNLRl6V761vXRdL8+OqZ0wd4TqlsNOQ==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@mariozechner/clipboard-darwin-universal@0.3.2': - resolution: {integrity: sha512-mxSheKTW2U9LsBdXy0SdmdCAE5HqNS9QUmpNHLnfJ+SsbFKALjEZc5oRrVMXxGQSirDvYf5bjmRyT0QYYonnlg==} + '@mariozechner/clipboard-darwin-universal@0.3.9': + resolution: {integrity: sha512-BGGR4iA9Z2shAjI65eI5xtyb3LYNlDW9X3gxKxDbqtbnREohsrqznov6zpKoIrsRWpzlYVEdKphS7ksJ0/ndSQ==} engines: {node: '>= 10'} os: [darwin] - '@mariozechner/clipboard-darwin-x64@0.3.2': - resolution: {integrity: sha512-U1BcVEoidvwIp95+HJswSW+xr28EQiHR7rZjH6pn8Sja5yO4Yoe3yCN0Zm8Lo72BbSOK/fTSq0je7CJpaPCspg==} + '@mariozechner/clipboard-darwin-x64@0.3.9': + resolution: {integrity: sha512-4kURmCbS6nt8uYhtmWpUcJWyPHfmAr5dTpXD1nO3pIfa+TSQ9DbrGOYCKH+aEFW47XhQ4Vp8ZTszie+wfFvDKg==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@mariozechner/clipboard-linux-arm64-gnu@0.3.2': - resolution: {integrity: sha512-BsinwG3yWTIjdgNCxsFlip7LkfwPk+ruw/aFCXHUg/fb5XC/Ksp+YMQ7u0LUtiKzIv/7LMXgZInJQH6gxbAaqQ==} + '@mariozechner/clipboard-linux-arm64-gnu@0.3.9': + resolution: {integrity: sha512-g59OkUGP2DDfCOIKypHeYgv2M55u/cKvXa5dSxFbEJ34XvIQMdcVmpKCkGUro3ZgefXiGVdwguvTMQGpHWzIXw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [glibc] - '@mariozechner/clipboard-linux-arm64-musl@0.3.2': - resolution: {integrity: sha512-0/Gi5Xq2V6goXBop19ePoHvXsmJD9SzFlO3S+d6+T2b+BlPcpOu3Oa0wTjl+cZrLAAEzA86aPNBI+VVAFDFPKw==} + '@mariozechner/clipboard-linux-arm64-musl@0.3.9': + resolution: {integrity: sha512-AGuJdgKsmJdm4Pych7kv3sqe591ERRaAHW3xjLooiFzn8J+PxUyof++7YZrB5Y5tpnTO+K18Og3taj2NpluCRQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [musl] - '@mariozechner/clipboard-linux-riscv64-gnu@0.3.2': - resolution: {integrity: sha512-2AFFiXB24qf0zOZsxI1GJGb9wQGlOJyN6UwoXqmKS3dpQi/l6ix30IzDDA4c4ZcCcx4D+9HLYXhC1w7Sov8pXA==} + '@mariozechner/clipboard-linux-riscv64-gnu@0.3.9': + resolution: {integrity: sha512-DXBEAiuMpk7dhS1a9NzNxVAFi1vaKoPu7rQNgY8LIDLGrK3lnIp3nT10DUum+PKVJoJppIP+NAA8IZe4DMNDPw==} engines: {node: '>= 10'} cpu: [riscv64] os: [linux] libc: [glibc] - '@mariozechner/clipboard-linux-x64-gnu@0.3.2': - resolution: {integrity: sha512-v6fVnsn7WMGg73Dab8QMwyFce7tzGfgEixKgzLP8f1GJqkJZi5zO4k4FOHzSgUufgLil63gnxvMpjWkgfeQN7A==} + '@mariozechner/clipboard-linux-x64-gnu@0.3.9': + resolution: {integrity: sha512-WORrMLd6EpElEME7JRKfSaY34nW1P5LbdgK5YNCS1ncG2LqmITsSMEJ8nh2mpvxb3TxqbOOKgY7k9eMJYlW9Mw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [glibc] - '@mariozechner/clipboard-linux-x64-musl@0.3.2': - resolution: {integrity: sha512-xVUtnoMQ8v2JVyfJLKKXACA6avdnchdbBkTsZs8BgJQo29qwCp5NIHAUO8gbJ40iaEGToW5RlmVk2M9V0HsHEw==} + '@mariozechner/clipboard-linux-x64-musl@0.3.9': + resolution: {integrity: sha512-/DHn+1DrfL6oRaPPWXaOKvonFFrni666fxd+zFqiQEfvBH0tsHVWjq9iqBk0oDp0qaPA72lIMy5BptxISBEhZQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [musl] - '@mariozechner/clipboard-win32-arm64-msvc@0.3.2': - resolution: {integrity: sha512-AEgg95TNi8TGgak2wSXZkXKCvAUTjWoU1Pqb0ON7JHrX78p616XUFNTJohtIon3e0w6k0pYPZeCuqRCza/Tqeg==} + '@mariozechner/clipboard-win32-arm64-msvc@0.3.9': + resolution: {integrity: sha512-O5FHD3ErkMwMhNzAfu3ggy0ug4z7btZuoQgwwxlzPrwV2bxlD6WDpqBY4NCgICAgZdDKdp+loUEKVAVt8aYnhQ==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@mariozechner/clipboard-win32-x64-msvc@0.3.2': - resolution: {integrity: sha512-tGRuYpZwDOD7HBrCpyRuhGnHHSCknELvqwKKUG4JSfSB7JIU7LKRh6zx6fMUOQd8uISK35TjFg5UcNih+vJhFA==} + '@mariozechner/clipboard-win32-x64-msvc@0.3.9': + resolution: {integrity: sha512-ihQC3EufqEY81vhXBgVBtK4prL+wc62zJsSvxrgz7K1hsdt6OObz6v9p3Rn1OG3GJksTTKMJF0u/guMISHPhSA==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@mariozechner/clipboard@0.3.5': - resolution: {integrity: sha512-D3F+UrU9CR7roJt0zDLp6Oc+4/KlLDIrN4frH+6V90SJNW2KKUec1oCQIPaaDjCqeOsQyX9dyqYbImIQIM45PA==} + '@mariozechner/clipboard@0.3.9': + resolution: {integrity: sha512-ABnA53mdfkGZwOFUdZNv2S0CWGO/EIuPj8Vv9xmBFmSYg/qFc7ihO6q5FcQjvoE67kZpWkEc4AhD6B/os04yuA==} engines: {node: '>= 10'} - '@mariozechner/jiti@2.6.5': - resolution: {integrity: sha512-faGUlTcXka5l7rv0lP3K3vGW/ejRuOS24RR2aSFWREUQqzjgdsuWNo/IiPqL3kWRGt6Ahl2+qcDAwtdeWeuGUw==} - hasBin: true - - '@mariozechner/pi-agent-core@0.72.1': - resolution: {integrity: sha512-Z5XH9mUDsBymh7Prtk5Eun4Cs+s9C3uzynug+oWAjzQESjjnCuy7KU6Ek8E9Eg+b9yroCwVw2ItLDxp2E3vYjA==} - engines: {node: '>=20.0.0'} - deprecated: please use @earendil-works/pi-agent-core instead going forward - - '@mariozechner/pi-ai@0.72.1': - resolution: {integrity: sha512-mOq71Pjnu72xxzwrh52VIiNwt+/a+Wpa11k5segi01/zTZJt8eMDc5Q2z6GhczYMr5+6EpZ8T+BaeHqq0jk5ag==} - engines: {node: '>=20.0.0'} - deprecated: please use @earendil-works/pi-ai instead going forward - hasBin: true - - '@mariozechner/pi-coding-agent@0.72.1': - resolution: {integrity: sha512-gKApiLfAYpvPnWThvwXrLjZIhsziSSUKBph7DHCy/1IomuIGN1MTxS/9ZtcuFqPy3/+VfEUOKegGlY6m+CRNlA==} - engines: {node: '>=20.6.0'} - deprecated: please use @earendil-works/pi-coding-agent instead going forward - hasBin: true - - '@mariozechner/pi-tui@0.72.1': - resolution: {integrity: sha512-KjeqzMQp4vafomfkvI8HKv5/52PqRP5BmlowGC8WKyOaB+u0UkkTdfM5U1Ui3ty2gA7FOfglVRiyvcitiWwvMQ==} - engines: {node: '>=20.0.0'} - deprecated: please use @earendil-works/pi-tui instead going forward - - '@mistralai/mistralai@2.2.1': - resolution: {integrity: sha512-uKU8CZmL2RzYKmplsU01hii4p3pe4HqJefpWNRWXm1Tcm0Sm4xXfwSLIy4k7ZCPlbETCGcp69E7hZs+WOJ5itQ==} + '@mistralai/mistralai@2.2.6': + resolution: {integrity: sha512-W8pX7zHxjJvMIpw8JMxeJEleapXX0Q9NPszdNzqkM3MIEoIGPObdodujj+WHteXEvGfaP/AMwlNyRfEzSY6dQQ==} + peerDependencies: + '@opentelemetry/api': ^1.9.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true '@napi-rs/lzma-linux-x64-gnu@1.5.1': resolution: {integrity: sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ==} @@ -1622,12 +1570,12 @@ packages: os: [linux] libc: [glibc] - '@napi-rs/wasm-runtime@1.2.6': - resolution: {integrity: sha512-mRyDmEw9/fCDXCGfL1sbgIw/GUK0PVxRW4YwgPN61F3LQ+fSyoBFarJVzgGyhF6kRzEQZ0FejDqm4WLXSeqQmw==} + '@napi-rs/wasm-runtime@1.2.5': + resolution: {integrity: sha512-HshSvXzmBxNzqejd3k/KemgQ3hdREUYFRRrgxOZ+gPljDIsO2SDZrVZMd4Z/HsxudQbE62OVyVFE8z9BCurfjA==} engines: {node: ^20.19.0 || ^22.13.0 || >=23.5.0} peerDependencies: - '@emnapi/core': ^1.7.1 || 2.0.0-beta.2 - '@emnapi/runtime': ^1.7.1 || 2.0.0-beta.2 + '@emnapi/core': ^1.7.1 || ^2.0.0-alpha.4 + '@emnapi/runtime': ^1.7.1 || ^2.0.0-alpha.4 '@noble/hashes@1.8.0': resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} @@ -1637,9 +1585,6 @@ packages: resolution: {integrity: sha512-X5XaVWZIBCT7HHZGm5I7ZQXDwLG+bGXuSrMQAW+7Zvl87h1kmc1ZB1VSRJcpUfoUrGQp4Fkoxm5kZ+Ms+aW+eA==} engines: {node: '>= 20.19.0'} - '@nodable/entities@2.1.0': - resolution: {integrity: sha512-nyT7T3nbMyBI/lvr6L5TyWbFJAI9FTgVRakNoBqCD+PmID8DzFrrNdLLtHMwMszOtqZa8PAOV24ZqDnQrhQINA==} - '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -1660,6 +1605,14 @@ packages: resolution: {integrity: sha512-/xGlezI6xfGO9NwuJlnwz/K14qD1kCSAGtacBHnGzeAIuJGazcp45KP5NuyARXoKb7cwulAGWVsbeSxdG/cb0Q==} engines: {node: ^18.17.0 || >=20.5.0} + '@opentelemetry/api@1.9.0': + resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} + engines: {node: '>=8.0.0'} + + '@opentelemetry/semantic-conventions@1.43.0': + resolution: {integrity: sha512-eSYWTm620tTk45EKSedaUL8MFYI8hW164hIXsgIHyxu3VobUB3fFCu5t0hQby6OoWRPsG1KkKUG2M5UadiLiVg==} + engines: {node: '>=14'} + '@oxc-project/types@0.127.0': resolution: {integrity: sha512-aIYXQBo4lCbO4z0R3FHeucQHpF46l2LbMdxRvqvuRuW2OxdnSkcng5B8+K12spgLDj93rtN3+J2Vac/TIO+ciQ==} @@ -1990,194 +1943,46 @@ packages: resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} engines: {node: '>=10'} - '@smithy/config-resolver@4.4.17': - resolution: {integrity: sha512-TzDZcAnhTyAHbXVxWZo7/tEcrIeFq20IBk8So3OLOetWpR8EwY/yEqBMBFaJMeyEiREDq4NfEl+qO3OAUD+vbQ==} - engines: {node: '>=18.0.0'} - - '@smithy/core@3.23.17': - resolution: {integrity: sha512-x7BlLbUFL8NWCGjMF9C+1N5cVCxcPa7g6Tv9B4A2luWx3be3oU8hQ96wIwxe/s7OhIzvoJH73HAUSg5JXVlEtQ==} - engines: {node: '>=18.0.0'} - - '@smithy/credential-provider-imds@4.2.14': - resolution: {integrity: sha512-Au28zBN48ZAoXdooGUHemuVBrkE+Ie6RPmGNIAJsFqj33Vhb6xAgRifUydZ2aY+M+KaMAETAlKk5NC5h1G7wpg==} - engines: {node: '>=18.0.0'} - - '@smithy/eventstream-codec@4.2.14': - resolution: {integrity: sha512-erZq0nOIpzfeZdCyzZjdJb4nVSKLUmSkaQUVkRGQTXs30gyUGeKnrYEg+Xe1W5gE3aReS7IgsvANwVPxSzY6Pw==} - engines: {node: '>=18.0.0'} - - '@smithy/eventstream-serde-browser@4.2.14': - resolution: {integrity: sha512-8IelTCtTctWRbb+0Dcy+C0aICh1qa0qWXqgjcXDmMuCvPJRnv26hiDZoAau2ILOniki65mCPKqOQs/BaWvO4CQ==} - engines: {node: '>=18.0.0'} - - '@smithy/eventstream-serde-config-resolver@4.3.14': - resolution: {integrity: sha512-sqHiHpYRYo3FJlaIxD1J8PhbcmJAm7IuM16mVnwSkCToD7g00IBZzKuiLNMGmftULmEUX6/UAz8/NN5uMP8bVA==} - engines: {node: '>=18.0.0'} - - '@smithy/eventstream-serde-node@4.2.14': - resolution: {integrity: sha512-Ht/8BuGlKfFTy0H3+8eEu0vdpwGztCnaLLXtpXNdQqiR7Hj4vFScU3T436vRAjATglOIPjJXronY+1WxxNLSiw==} + '@smithy/core@3.36.0': + resolution: {integrity: sha512-3hJiwG1F5t1SoXqp/yOCmYXziyx7ZVqF63S5W6YU201e/qwVaHPex+E/3vvyY9a3ORq/b+BydeNZpP2saQ9X2g==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-universal@4.2.14': - resolution: {integrity: sha512-lWyt4T2XQZUZgK3tQ3Wn0w3XBvZsK/vjTuJl6bXbnGZBHH0ZUSONTYiK9TgjTTzU54xQr3DRFwpjmhp0oLm3gg==} + '@smithy/credential-provider-imds@4.5.2': + resolution: {integrity: sha512-A9uSdn72ozbRUSit0eib0TW7nXuNPlaeM0zcGkJ+nE6tFcSDbnmtwoxbTCFBukVQcszDAyvsd7+rTduPTXpygg==} engines: {node: '>=18.0.0'} - '@smithy/fetch-http-handler@5.3.17': - resolution: {integrity: sha512-bXOvQzaSm6MnmLaWA1elgfQcAtN4UP3vXqV97bHuoOrHQOJiLT3ds6o9eo5bqd0TJfRFpzdGnDQdW3FACiAVdw==} - engines: {node: '>=18.0.0'} - - '@smithy/hash-node@4.2.14': - resolution: {integrity: sha512-8ZBDY2DD4wr+GGjTpPtiglEsqr0lUP+KHqgZcWczFf6qeZ/YRjMIOoQWVQlmwu7EtxKTd8YXD8lblmYcpBIA1g==} - engines: {node: '>=18.0.0'} - - '@smithy/invalid-dependency@4.2.14': - resolution: {integrity: sha512-c21qJiTSb25xvvOp+H2TNZzPCngrvl5vIPqPB8zQ/DmJF4QWXO19x1dWfMJZ6wZuuWUPPm0gV8C0cU3+ifcWuw==} + '@smithy/fetch-http-handler@5.8.0': + resolution: {integrity: sha512-ycSJu3tFAQ4v04CBB0agqFMVsSQ1iG3yw+SpgxRqKfaURpQD4CZ8Wn0zPMmSnOuTpTh65Vz+EA0rMrw089wvkA==} engines: {node: '>=18.0.0'} '@smithy/is-array-buffer@2.2.0': resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==} engines: {node: '>=14.0.0'} - '@smithy/is-array-buffer@4.2.2': - resolution: {integrity: sha512-n6rQ4N8Jj4YTQO3YFrlgZuwKodf4zUFs7EJIWH86pSCWBaAtAGBFfCM7Wx6D2bBJ2xqFNxGBSrUWswT3M0VJow==} - engines: {node: '>=18.0.0'} - - '@smithy/middleware-content-length@4.2.14': - resolution: {integrity: sha512-xhHq7fX4/3lv5NHxLUk3OeEvl0xZ+Ek3qIbWaCL4f9JwgDZEclPBElljaZCAItdGPQl/kSM4LPMOpy1MYgprpw==} - engines: {node: '>=18.0.0'} - - '@smithy/middleware-endpoint@4.4.32': - resolution: {integrity: sha512-ZZkgyjnJppiZbIm6Qbx92pbXYi1uzenIvGhBSCDlc7NwuAkiqSgS75j1czAD25ZLs2FjMjYy1q7gyRVWG6JA0Q==} - engines: {node: '>=18.0.0'} - - '@smithy/middleware-retry@4.5.7': - resolution: {integrity: sha512-bRt6ZImqVSeTk39Nm81K20ObIiAZ3WefY7G6+iz/0tZjs4dgRRjvRX2sgsH+zi6iDCRR/aQvQofLKxxz4rPBZg==} - engines: {node: '>=18.0.0'} - - '@smithy/middleware-serde@4.2.20': - resolution: {integrity: sha512-Lx9JMO9vArPtiChE3wbEZ5akMIDQpWQtlu90lhACQmNOXcGXRbaDywMHDzuDZ2OkZzP+9wQfZi3YJT9F67zTQQ==} - engines: {node: '>=18.0.0'} - - '@smithy/middleware-stack@4.2.14': - resolution: {integrity: sha512-2dvkUKLuFdKsCRmOE4Mn63co0Djtsm+JMh0bYZQupN1pJwMeE8FmQmRLLzzEMN0dnNi7CDCYYH8F0EVwWiPBeA==} - engines: {node: '>=18.0.0'} - - '@smithy/node-config-provider@4.3.14': - resolution: {integrity: sha512-S+gFjyo/weSVL0P1b9Ts8C/CwIfNCgUPikk3sl6QVsfE/uUuO+QsF+NsE/JkpvWqqyz1wg7HFdiaZuj5CoBMRg==} - engines: {node: '>=18.0.0'} - - '@smithy/node-http-handler@4.6.1': - resolution: {integrity: sha512-iB+orM4x3xrr57X3YaXazfKnntl0LHlZB1kcXSGzMV1Tt0+YwEjGlbjk/44qEGtBzXAz6yFDzkYTKSV6Pj2HUg==} - engines: {node: '>=18.0.0'} - - '@smithy/property-provider@4.2.14': - resolution: {integrity: sha512-WuM31CgfsnQ/10i7NYr0PyxqknD72Y5uMfUMVSniPjbEPceiTErb4eIqJQ+pdxNEAUEWrewrGjIRjVbVHsxZiQ==} - engines: {node: '>=18.0.0'} - - '@smithy/protocol-http@5.3.14': - resolution: {integrity: sha512-dN5F8kHx8RNU0r+pCwNmFZyz6ChjMkzShy/zup6MtkRmmix4vZzJdW+di7x//b1LiynIev88FM18ie+wwPcQtQ==} - engines: {node: '>=18.0.0'} - - '@smithy/querystring-builder@4.2.14': - resolution: {integrity: sha512-XYA5Z0IqTeF+5XDdh4BBmSA0HvbgVZIyv4cmOoUheDNR57K1HgBp9ukUMx3Cr3XpDHHpLBnexPE3LAtDsZkj2A==} - engines: {node: '>=18.0.0'} - - '@smithy/querystring-parser@4.2.14': - resolution: {integrity: sha512-hr+YyqBD23GVvRxGGrcc/oOeNlK3PzT5Fu4dzrDXxzS1LpFiuL2PQQqKPs87M79aW7ziMs+nvB3qdw77SqE7Lw==} - engines: {node: '>=18.0.0'} - - '@smithy/service-error-classification@4.3.1': - resolution: {integrity: sha512-aUQuDGh760ts/8MU+APjIZhlLPKhIIfqyzZaJikLEIMrdxFvxuLYD0WxWzaYWpmLbQlXDe9p7EWM3HsBe0K6Gw==} - engines: {node: '>=18.0.0'} - - '@smithy/shared-ini-file-loader@4.4.9': - resolution: {integrity: sha512-495/V2I15SHgedSJoDPD23JuSfKAp726ZI1V0wtjB07Wh7q/0tri/0e0DLefZCHgxZonrGKt/OCTpAtP1wE1kQ==} - engines: {node: '>=18.0.0'} - - '@smithy/signature-v4@5.3.14': - resolution: {integrity: sha512-1D9Y/nmlVjCeSivCbhZ7hgEpmHyY1h0GvpSZt3l0xcD9JjmjVC1CHOozS6+Gh+/ldMH8JuJ6cujObQqfayAVFA==} + '@smithy/node-http-handler@4.12.1': + resolution: {integrity: sha512-ThMkboGeONWXAelq9FvGsuJC4rOi+qyC4/zhUF58xYpxUg5sQKx2VXZYJmtNjr4dSuBJ1HeJXETQILCz3wOHvw==} engines: {node: '>=18.0.0'} - '@smithy/smithy-client@4.12.13': - resolution: {integrity: sha512-y/Pcj1V9+qG98gyu1gvftHB7rDpdh+7kIBIggs55yGm3JdtBV8GT8IFF3a1qxZ79QnaJHX9GXzvBG6tAd+czJA==} + '@smithy/node-http-handler@4.7.3': + resolution: {integrity: sha512-/jPhevcTFPMVl6KNjbaI47iOg1zxC7IsnX4PQDGVZKMFceOXtB8IEYaB7a9VvkP/3oC60WzTeKocvSI7vLT0vA==} engines: {node: '>=18.0.0'} - '@smithy/types@4.14.1': - resolution: {integrity: sha512-59b5HtSVrVR/eYNei3BUj3DCPKD/G7EtDDe7OEJE7i7FtQFugYo6MxbotS8mVJkLNVf8gYaAlEBwwtJ9HzhWSg==} + '@smithy/signature-v4@5.7.4': + resolution: {integrity: sha512-tHy0K0VtqNd5Y7Y41h0a0Lhh0L1GzC08dTWg0F7vRJWFtTENg7IZikf3wQkanYIRdb7ngoIPMTmqgUi401fEeQ==} engines: {node: '>=18.0.0'} - '@smithy/url-parser@4.2.14': - resolution: {integrity: sha512-p06BiBigJ8bTA3MgnOfCtDUWnAMY0YfedO/GRpmc7p+wg3KW8vbXy1xwSu5ASy0wV7rRYtlfZOIKH4XqfhjSQQ==} - engines: {node: '>=18.0.0'} - - '@smithy/util-base64@4.3.2': - resolution: {integrity: sha512-XRH6b0H/5A3SgblmMa5ErXQ2XKhfbQB+Fm/oyLZ2O2kCUrwgg55bU0RekmzAhuwOjA9qdN5VU2BprOvGGUkOOQ==} - engines: {node: '>=18.0.0'} - - '@smithy/util-body-length-browser@4.2.2': - resolution: {integrity: sha512-JKCrLNOup3OOgmzeaKQwi4ZCTWlYR5H4Gm1r2uTMVBXoemo1UEghk5vtMi1xSu2ymgKVGW631e2fp9/R610ZjQ==} - engines: {node: '>=18.0.0'} - - '@smithy/util-body-length-node@4.2.3': - resolution: {integrity: sha512-ZkJGvqBzMHVHE7r/hcuCxlTY8pQr1kMtdsVPs7ex4mMU+EAbcXppfo5NmyxMYi2XU49eqaz56j2gsk4dHHPG/g==} + '@smithy/types@4.19.0': + resolution: {integrity: sha512-r7jh49VJxGerfAcTQA6gXcKc+98zOp/tqRwzYjgOE+iSQsP6cEU1hq2QzbuipmP68QtYdY9wKEhiCQZIzHgZ4Q==} engines: {node: '>=18.0.0'} '@smithy/util-buffer-from@2.2.0': resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==} engines: {node: '>=14.0.0'} - '@smithy/util-buffer-from@4.2.2': - resolution: {integrity: sha512-FDXD7cvUoFWwN6vtQfEta540Y/YBe5JneK3SoZg9bThSoOAC/eGeYEua6RkBgKjGa/sz6Y+DuBZj3+YEY21y4Q==} - engines: {node: '>=18.0.0'} - - '@smithy/util-config-provider@4.2.2': - resolution: {integrity: sha512-dWU03V3XUprJwaUIFVv4iOnS1FC9HnMHDfUrlNDSh4315v0cWyaIErP8KiqGVbf5z+JupoVpNM7ZB3jFiTejvQ==} - engines: {node: '>=18.0.0'} - - '@smithy/util-defaults-mode-browser@4.3.49': - resolution: {integrity: sha512-a5bNrdiONYB/qE2BuKegvUMd/+ZDwdg4vsNuuSzYE8qs2EYAdK9CynL+Rzn29PbPiUqoz/cbpRbcLzD5lEevHw==} - engines: {node: '>=18.0.0'} - - '@smithy/util-defaults-mode-node@4.2.54': - resolution: {integrity: sha512-g1cvrJvOnzeJgEdf7AE4luI7gp6L8weE0y9a9wQUSGtjb8QRHDbCJYuE4Sy0SD9N8RrnNPFsPltAz/OSoBR9Zw==} - engines: {node: '>=18.0.0'} - - '@smithy/util-endpoints@3.4.2': - resolution: {integrity: sha512-a55Tr+3OKld4TTtnT+RhKOQHyPxm3j/xL4OR83WBUhLJaKDS9dnJ7arRMOp3t31dcLhApwG9bgvrRXBHlLdIkg==} - engines: {node: '>=18.0.0'} - - '@smithy/util-hex-encoding@4.2.2': - resolution: {integrity: sha512-Qcz3W5vuHK4sLQdyT93k/rfrUwdJ8/HZ+nMUOyGdpeGA1Wxt65zYwi3oEl9kOM+RswvYq90fzkNDahPS8K0OIg==} - engines: {node: '>=18.0.0'} - - '@smithy/util-middleware@4.2.14': - resolution: {integrity: sha512-1Su2vj9RYNDEv/V+2E+jXkkwGsgR7dc4sfHn9Z7ruzQHJIEni9zzw5CauvRXlFJfmgcqYP8fWa0dkh2Q2YaQyw==} - engines: {node: '>=18.0.0'} - - '@smithy/util-retry@4.3.8': - resolution: {integrity: sha512-LUIxbTBi+OpvXpg91poGA6BdyoleMDLnfXjVDqyi2RvZmTveY5loE/FgYUBCR5LU2BThW2SoZRh8dTIIy38IPw==} - engines: {node: '>=18.0.0'} - - '@smithy/util-stream@4.5.25': - resolution: {integrity: sha512-/PFpG4k8Ze8Ei+mMKj3oiPICYekthuzePZMgZbCqMiXIHHf4n2aZ4Ps0aSRShycFTGuj/J6XldmC0x0DwednIA==} - engines: {node: '>=18.0.0'} - - '@smithy/util-uri-escape@4.2.2': - resolution: {integrity: sha512-2kAStBlvq+lTXHyAZYfJRb/DfS3rsinLiwb+69SstC9Vb0s9vNWkRwpnj918Pfi85mzi42sOqdV72OLxWAISnw==} - engines: {node: '>=18.0.0'} - '@smithy/util-utf8@2.3.0': resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==} engines: {node: '>=14.0.0'} - '@smithy/util-utf8@4.2.2': - resolution: {integrity: sha512-75MeYpjdWRe8M5E3AW0O4Cx3UadweS+cwdXjwYGBW5h/gxxnbeZ877sLPX/ZJA9GVTlL/qG0dXP29JWFCD1Ayw==} - engines: {node: '>=18.0.0'} - - '@smithy/uuid@1.1.2': - resolution: {integrity: sha512-O/IEdcCUKkubz60tFbGA7ceITTAJsty+lBjNoorP4Z6XRqaFb/OjQjZODophEcuq68nKm6/0r+6/lLQ+XVpk8g==} - engines: {node: '>=18.0.0'} - '@standard-schema/spec@1.1.0': resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} @@ -2307,13 +2112,6 @@ packages: peerDependencies: '@testing-library/dom': '>=7.21.4' - '@tokenizer/inflate@0.4.1': - resolution: {integrity: sha512-2mAv+8pkG6GIZiF1kNg1jAjh27IDxEPKwdGul3snfztFerfPGI1LjDezZp3i7BElXompqEtPmoPx6c2wgtWsOA==} - engines: {node: '>=18'} - - '@tokenizer/token@0.3.0': - resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} - '@tootallnate/quickjs-emscripten@0.23.0': resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} @@ -2410,9 +2208,6 @@ packages: '@types/mdurl@2.0.0': resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} - '@types/mime-types@2.1.4': - resolution: {integrity: sha512-lfU4b34HOri+kAY5UheuFMWPDOI+OPceBSHZKp69gEyTL/mmJ4cnU6Y/rlme3UL3GyOn6Y42hyIEw0/q8sWx5w==} - '@types/ms@2.1.0': resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} @@ -2664,9 +2459,6 @@ packages: resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} engines: {node: '>=12'} - any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - app-builder-bin@5.0.0-alpha.12: resolution: {integrity: sha512-j87o0j6LqPL3QRr8yid6c+Tt5gC7xNfYo6uQIQkorAC6MpeayVMZrEDzKmJJ/Hlv7EnOQpaRm53k6ktDYZyB6w==} @@ -2845,10 +2637,6 @@ packages: resolution: {integrity: sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==} engines: {node: 20 || >=22} - brace-expansion@5.0.5: - resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==} - engines: {node: 18 || 20 || >=22} - braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} @@ -2974,11 +2762,6 @@ packages: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} engines: {node: '>=8'} - cli-highlight@2.1.11: - resolution: {integrity: sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==} - engines: {node: '>=8.0.0', npm: '>=5.0.0'} - hasBin: true - cli-spinners@2.9.2: resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} engines: {node: '>=6'} @@ -2987,9 +2770,6 @@ packages: resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} engines: {node: '>=8'} - cliui@7.0.4: - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} - cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -3379,13 +3159,6 @@ packages: fast-uri@3.1.8: resolution: {integrity: sha512-GZMtZUTNRpOVIECoXwLNZS5xUGE+mVNbTB8h/7Rwh2TFWcBQiPzTgyZi05BF9UMZKkLJv8XBRJTlU7zg8+ZfMg==} - fast-xml-builder@1.1.5: - resolution: {integrity: sha512-4TJn/8FKLeslLAH3dnohXqE3QSoxkhvaMzepOIZytwJXZO69Bfz0HBdDHzOTOon6G59Zrk6VQ2bEiv1t61rfkA==} - - fast-xml-parser@5.7.2: - resolution: {integrity: sha512-P7oW7tLbYnhOLQk/Gv7cZgzgMPP/XN03K02/Jy6Y/NHzyIAIpxuZIM/YqAkfiXFPxA2CTm7NtCijK9EDu09u2w==} - hasBin: true - fastq@1.20.3: resolution: {integrity: sha512-XKv5nnLs6nLF71NgiKJLIZFLkPyIEuOselLG7ujZnGrRfQK8HpvY+WqKhAJUAdLomwVHErVS4LfxFlPq0/FTAw==} @@ -3405,10 +3178,6 @@ packages: resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} engines: {node: ^12.20 || >= 14.13} - file-type@21.3.4: - resolution: {integrity: sha512-Ievi/yy8DS3ygGvT47PjSfdFoX+2isQueoYP1cntFW1JLYAuS4GD7NUPGg4zv2iZfV52uDyk5w5Z0TdpRS6Q1g==} - engines: {node: '>=20'} - filelist@1.0.6: resolution: {integrity: sha512-5giy2PkLYY1cP39p17Ech+2xlpTRL9HLspOfEgm0L6CwBXBTgsK5ou0JtzYuepxkaQ/tvhCFIJ5uXo0OrM2DxA==} @@ -3497,8 +3266,8 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-east-asian-width@1.5.0: - resolution: {integrity: sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==} + get-east-asian-width@1.6.0: + resolution: {integrity: sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==} engines: {node: '>=18'} get-intrinsic@1.3.0: @@ -3852,9 +3621,6 @@ packages: keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - koffi@2.16.1: - resolution: {integrity: sha512-0Ie6CfD026dNfWSosDw9dPxPzO9Rlyo0N8m5r05S8YjytIpuilzMFDMY4IDy/8xQsTwpuVinhncD+S8n3bcYZQ==} - lazy-val@1.0.5: resolution: {integrity: sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==} @@ -4080,9 +3846,9 @@ packages: markdown-table@3.0.4: resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} - marked@15.0.12: - resolution: {integrity: sha512-8dD6FusOQSrpv9Z1rdNMdlSgQOIP880DHqnohobOmYLElGEqAL/JvxvuxZO16r4HtjTlfPRDC1hbvxC9dPN2nA==} - engines: {node: '>= 18'} + marked@18.0.5: + resolution: {integrity: sha512-S6GcvALHg6K4ohtu4E7x0a1AqhAjp6cV8KhLSyN9qVapnzJkusVBxZRcIU9AeYsbe6P1hKDusSbEOzGyyuce6w==} + engines: {node: '>= 20'} hasBin: true matcher@3.0.0: @@ -4234,18 +4000,10 @@ packages: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} - mime-db@1.54.0: - resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} - engines: {node: '>= 0.6'} - mime-types@2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} - mime-types@3.0.2: - resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==} - engines: {node: '>=18'} - mime@2.6.0: resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} engines: {node: '>=4.0.0'} @@ -4334,9 +4092,6 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - nanoid@3.3.19: resolution: {integrity: sha512-Y2tUNy4ouw6tq5oDSKeQYGOyhkUBhNOcGV/02KC+6kd9eDGqdZd++mjMiIDilrBYvjEnCYvVtsuHCuP+okSfug==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -4408,10 +4163,6 @@ packages: resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} engines: {node: '>=10'} - object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} @@ -4505,15 +4256,6 @@ packages: parse-entities@4.0.2: resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} - parse5-htmlparser2-tree-adapter@6.0.1: - resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==} - - parse5@5.1.1: - resolution: {integrity: sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==} - - parse5@6.0.1: - resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} - parse5@8.0.1: resolution: {integrity: sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==} @@ -4524,10 +4266,6 @@ packages: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} - path-expression-matcher@1.5.0: - resolution: {integrity: sha512-cbrerZV+6rvdQrrD+iGMcZFEiiSrbv9Tfdkvnusy6y0x0GKBXREFg/Y65GhIfm0tnLntThhzCnfKwp1WRjeCyQ==} - engines: {node: '>=14.0.0'} - path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} @@ -4595,8 +4333,8 @@ packages: resolution: {integrity: sha512-RRuzqDtt5Y9h3quz5hWhK+TPnsmVs6WwSU6LkJMeY4HstUEDuYTG8UJSdawMRzmzAtV+KEoG8N3Qg2qLy5vM/A==} engines: {node: ^10 || ^12 || >=14} - postcss@8.5.32: - resolution: {integrity: sha512-LJlKCCAUFKOuZxipUdYw1NzIITEsPcgyOG9LkvRJvuKj/bRzbuRY0ARXvL0pWGpsZvn8jku+LMep2eU0seHp8g==} + postcss@8.5.31: + resolution: {integrity: sha512-YUbWYCgErwnMAVkjUnYa+KlMBzGpHwiIt/DE7f0G33AuX2LH9UcTk6KgWxd3zRU+pN3u/C+Xl3EnMLM4Hea7Sg==} engines: {node: ^10 || ^12 || >=14} postject@1.0.0-alpha.6: @@ -4862,6 +4600,11 @@ packages: engines: {node: '>=10'} hasBin: true + semver@7.8.0: + resolution: {integrity: sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==} + engines: {node: '>=10'} + hasBin: true + semver@7.8.5: resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==} engines: {node: '>=10'} @@ -4961,9 +4704,6 @@ packages: resolution: {integrity: sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==} engines: {node: '>= 6'} - std-env@3.10.0: - resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} - std-env@4.3.0: resolution: {integrity: sha512-OtU/EgQ1kIm5KwqQpBC6ZEMXrZRui11w8zgfTWp8cdO9B8OaPsbA8bTHO2P+HNo1VlUTGMVBwPhydu6poeXiag==} @@ -4999,13 +4739,6 @@ packages: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} - strnum@2.2.3: - resolution: {integrity: sha512-oKx6RUCuHfT3oyVjtnrmn19H1SiCqgJSg+54XqURKp5aCMbrXrhLjRN9TjuwMjiYstZ0MzDrHqkGZ5dFTKd+zg==} - - strtok3@10.3.5: - resolution: {integrity: sha512-ki4hZQfh5rX0QDLLkOCj+h+CVNkqmp/CMf8v8kZpkNVK6jGQooMytqzLZYUVYIZcFZ6yDB70EfD8POcFXiF5oA==} - engines: {node: '>=18'} - style-to-js@1.1.21: resolution: {integrity: sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==} @@ -5061,13 +4794,6 @@ packages: text-decoder@1.2.7: resolution: {integrity: sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==} - thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} - - thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - tiny-async-pool@1.3.0: resolution: {integrity: sha512-01EAw5EDrcVrdgyCLgoSPvqznC0sVxDSVeiOz09FUpjh71G79VCqneOr+xvt7T1r76CF6ZZfPjHorN2+d+3mqA==} @@ -5100,10 +4826,6 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} - token-types@6.1.2: - resolution: {integrity: sha512-dRXchy+C0IgK8WPC6xvCHFRIWYUbqqdEIKPaKo/AcTUNzwLTK6AH7RjdLWsEZcAN/TBdtfUw3PYEgPr5VPr6ww==} - engines: {node: '>=14.16'} - trim-lines@3.0.1: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} @@ -5132,8 +4854,8 @@ packages: resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} engines: {node: '>=10'} - typebox@1.1.37: - resolution: {integrity: sha512-jb7jp6KvOvvy5sd+11AfJ0/e0F0AS9RcOXd55oGi2ZnRHIGmFvrTaNF+ZidRmGBmmNTkM5KKl0Z37KzxJ+owEQ==} + typebox@1.1.38: + resolution: {integrity: sha512-pZ0aQPmMmXoUvSbeuWf/Hzsc+avNw/Zd6VeE8CFgkVGWyuHPJvqeJJDeJqLve+K70LvjYIoleGcoJHPT17cWoA==} typed-query-selector@2.12.2: resolution: {integrity: sha512-EOPFbyIub4ngnEdqi2yOcNeDLaX/0jcE1JoAXQDDMIthap7FoN795lc/SHfIq2d416VufXpM8z/lD+WRm2gfOQ==} @@ -5143,10 +4865,6 @@ packages: engines: {node: '>=14.17'} hasBin: true - uint8array-extras@1.5.0: - resolution: {integrity: sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A==} - engines: {node: '>=18'} - undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} @@ -5164,6 +4882,10 @@ packages: resolution: {integrity: sha512-03KrMbjIFDWQR5RNPrSw3bd1r12JpyFQl9/yxjUbJtqkjmllqC5lFjZh6ujeuJCKr8EOQvRW872Oy/az+nLYxg==} engines: {node: '>=20.18.1'} + undici@8.12.4: + resolution: {integrity: sha512-8Mx+uNKKER2bA4AdtedkqRbwUCIJFr2nJckXRe5yrDqzePqwLP7VNcctN8/XdmDSbF7mS+jJKIszlL+vbam1VA==} + engines: {node: '>=22.19.0'} + unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} @@ -5221,10 +4943,6 @@ packages: util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - uuid@14.0.0: - resolution: {integrity: sha512-Qo+uWgilfSmAhXCMav1uYFynlQO7fMFiMVZsQqZRMIXp0O7rR7qjkj+cPvBHLgBqi960QCoo/PH2/6ZtVqKvrg==} - hasBin: true - verror@1.10.1: resolution: {integrity: sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==} engines: {node: '>=0.6.0'} @@ -5513,28 +5231,15 @@ packages: resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} engines: {node: '>=18'} - yaml@2.8.4: - resolution: {integrity: sha512-ml/JPOj9fOQK8RNnWojA67GbZ0ApXAUlN2UQclwv2eVgTgn7O9gg9o7paZWKMp4g0H3nTLtS9LVzhkpOFIKzog==} - engines: {node: '>= 14.6'} - hasBin: true - yaml@2.9.0: resolution: {integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==} engines: {node: '>= 14.6'} hasBin: true - yargs-parser@20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} - yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} - yargs@16.2.2: - resolution: {integrity: sha512-Nt9ZJjXTv5R8MHbqby/wXQ6Gi0Bb3TcYZkR1bzuL4yB2OxWPkXknz513gEF0GoA6tn00UpbPvERW8rzCuWCA6w==} - engines: {node: '>=10'} - yargs@17.7.3: resolution: {integrity: sha512-GZtjxm/J/4TSxuL3FNYjCmLktBTnIw/rVmKSIyKeYAZpmJB2ig9VauCC5xsa82GNKVKDAqpOn3KVzNt0zmrU0g==} engines: {node: '>=12'} @@ -5553,10 +5258,6 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - yoctocolors@2.1.2: - resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==} - engines: {node: '>=18'} - zip-lib@1.3.2: resolution: {integrity: sha512-y5i/N4exvEzl45gavh4IwBuspSc95R2Ju9zLTBdNWv3nttBqi9zKuz9q3Tz+tl6NOkTI0zwTBiAqv5WakQVOfQ==} engines: {node: '>=20'} @@ -5717,18 +5418,12 @@ snapshots: optionalDependencies: zod: 4.4.2 - '@aws-crypto/crc32@5.2.0': - dependencies: - '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.973.8 - tslib: 2.8.1 - '@aws-crypto/sha256-browser@5.2.0': dependencies: '@aws-crypto/sha256-js': 5.2.0 '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.973.8 + '@aws-sdk/types': 3.974.6 '@aws-sdk/util-locate-window': 3.965.5 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 @@ -5736,7 +5431,7 @@ snapshots: '@aws-crypto/sha256-js@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.973.8 + '@aws-sdk/types': 3.974.6 tslib: 2.8.1 '@aws-crypto/supports-web-crypto@5.2.0': @@ -5745,386 +5440,197 @@ snapshots: '@aws-crypto/util@5.2.0': dependencies: - '@aws-sdk/types': 3.973.8 + '@aws-sdk/types': 3.974.6 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 - '@aws-sdk/client-bedrock-runtime@3.1041.0': + '@aws-sdk/client-bedrock-runtime@3.1048.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.974.8 - '@aws-sdk/credential-provider-node': 3.972.39 - '@aws-sdk/eventstream-handler-node': 3.972.14 - '@aws-sdk/middleware-eventstream': 3.972.10 - '@aws-sdk/middleware-host-header': 3.972.10 - '@aws-sdk/middleware-logger': 3.972.10 - '@aws-sdk/middleware-recursion-detection': 3.972.11 - '@aws-sdk/middleware-user-agent': 3.972.38 - '@aws-sdk/middleware-websocket': 3.972.16 - '@aws-sdk/region-config-resolver': 3.972.13 - '@aws-sdk/token-providers': 3.1041.0 - '@aws-sdk/types': 3.973.8 - '@aws-sdk/util-endpoints': 3.996.8 - '@aws-sdk/util-user-agent-browser': 3.972.10 - '@aws-sdk/util-user-agent-node': 3.973.24 - '@smithy/config-resolver': 4.4.17 - '@smithy/core': 3.23.17 - '@smithy/eventstream-serde-browser': 4.2.14 - '@smithy/eventstream-serde-config-resolver': 4.3.14 - '@smithy/eventstream-serde-node': 4.2.14 - '@smithy/fetch-http-handler': 5.3.17 - '@smithy/hash-node': 4.2.14 - '@smithy/invalid-dependency': 4.2.14 - '@smithy/middleware-content-length': 4.2.14 - '@smithy/middleware-endpoint': 4.4.32 - '@smithy/middleware-retry': 4.5.7 - '@smithy/middleware-serde': 4.2.20 - '@smithy/middleware-stack': 4.2.14 - '@smithy/node-config-provider': 4.3.14 - '@smithy/node-http-handler': 4.6.1 - '@smithy/protocol-http': 5.3.14 - '@smithy/smithy-client': 4.12.13 - '@smithy/types': 4.14.1 - '@smithy/url-parser': 4.2.14 - '@smithy/util-base64': 4.3.2 - '@smithy/util-body-length-browser': 4.2.2 - '@smithy/util-body-length-node': 4.2.3 - '@smithy/util-defaults-mode-browser': 4.3.49 - '@smithy/util-defaults-mode-node': 4.2.54 - '@smithy/util-endpoints': 3.4.2 - '@smithy/util-middleware': 4.2.14 - '@smithy/util-retry': 4.3.8 - '@smithy/util-stream': 4.5.25 - '@smithy/util-utf8': 4.2.2 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/core@3.974.8': - dependencies: - '@aws-sdk/types': 3.973.8 - '@aws-sdk/xml-builder': 3.972.22 - '@smithy/core': 3.23.17 - '@smithy/node-config-provider': 4.3.14 - '@smithy/property-provider': 4.2.14 - '@smithy/protocol-http': 5.3.14 - '@smithy/signature-v4': 5.3.14 - '@smithy/smithy-client': 4.12.13 - '@smithy/types': 4.14.1 - '@smithy/util-base64': 4.3.2 - '@smithy/util-middleware': 4.2.14 - '@smithy/util-retry': 4.3.8 - '@smithy/util-utf8': 4.2.2 + '@aws-sdk/core': 3.978.4 + '@aws-sdk/credential-provider-node': 3.972.87 + '@aws-sdk/eventstream-handler-node': 3.972.37 + '@aws-sdk/middleware-eventstream': 3.972.32 + '@aws-sdk/middleware-websocket': 3.972.57 + '@aws-sdk/token-providers': 3.1048.0 + '@aws-sdk/types': 3.974.6 + '@smithy/core': 3.36.0 + '@smithy/fetch-http-handler': 5.8.0 + '@smithy/node-http-handler': 4.12.1 + '@smithy/types': 4.19.0 tslib: 2.8.1 - '@aws-sdk/credential-provider-env@3.972.34': + '@aws-sdk/core@3.978.4': dependencies: - '@aws-sdk/core': 3.974.8 - '@aws-sdk/types': 3.973.8 - '@smithy/property-provider': 4.2.14 - '@smithy/types': 4.14.1 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-http@3.972.36': - dependencies: - '@aws-sdk/core': 3.974.8 - '@aws-sdk/types': 3.973.8 - '@smithy/fetch-http-handler': 5.3.17 - '@smithy/node-http-handler': 4.6.1 - '@smithy/property-provider': 4.2.14 - '@smithy/protocol-http': 5.3.14 - '@smithy/smithy-client': 4.12.13 - '@smithy/types': 4.14.1 - '@smithy/util-stream': 4.5.25 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-ini@3.972.38': - dependencies: - '@aws-sdk/core': 3.974.8 - '@aws-sdk/credential-provider-env': 3.972.34 - '@aws-sdk/credential-provider-http': 3.972.36 - '@aws-sdk/credential-provider-login': 3.972.38 - '@aws-sdk/credential-provider-process': 3.972.34 - '@aws-sdk/credential-provider-sso': 3.972.38 - '@aws-sdk/credential-provider-web-identity': 3.972.38 - '@aws-sdk/nested-clients': 3.997.6 - '@aws-sdk/types': 3.973.8 - '@smithy/credential-provider-imds': 4.2.14 - '@smithy/property-provider': 4.2.14 - '@smithy/shared-ini-file-loader': 4.4.9 - '@smithy/types': 4.14.1 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/credential-provider-login@3.972.38': - dependencies: - '@aws-sdk/core': 3.974.8 - '@aws-sdk/nested-clients': 3.997.6 - '@aws-sdk/types': 3.973.8 - '@smithy/property-provider': 4.2.14 - '@smithy/protocol-http': 5.3.14 - '@smithy/shared-ini-file-loader': 4.4.9 - '@smithy/types': 4.14.1 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/credential-provider-node@3.972.39': - dependencies: - '@aws-sdk/credential-provider-env': 3.972.34 - '@aws-sdk/credential-provider-http': 3.972.36 - '@aws-sdk/credential-provider-ini': 3.972.38 - '@aws-sdk/credential-provider-process': 3.972.34 - '@aws-sdk/credential-provider-sso': 3.972.38 - '@aws-sdk/credential-provider-web-identity': 3.972.38 - '@aws-sdk/types': 3.973.8 - '@smithy/credential-provider-imds': 4.2.14 - '@smithy/property-provider': 4.2.14 - '@smithy/shared-ini-file-loader': 4.4.9 - '@smithy/types': 4.14.1 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/credential-provider-process@3.972.34': - dependencies: - '@aws-sdk/core': 3.974.8 - '@aws-sdk/types': 3.973.8 - '@smithy/property-provider': 4.2.14 - '@smithy/shared-ini-file-loader': 4.4.9 - '@smithy/types': 4.14.1 + '@aws-sdk/types': 3.974.6 + '@aws-sdk/xml-builder': 3.972.41 + '@aws/lambda-invoke-store': 0.3.0 + '@smithy/core': 3.36.0 + '@smithy/signature-v4': 5.7.4 + '@smithy/types': 4.19.0 + bowser: 2.14.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-sso@3.972.38': + '@aws-sdk/credential-provider-env@3.972.75': dependencies: - '@aws-sdk/core': 3.974.8 - '@aws-sdk/nested-clients': 3.997.6 - '@aws-sdk/token-providers': 3.1041.0 - '@aws-sdk/types': 3.973.8 - '@smithy/property-provider': 4.2.14 - '@smithy/shared-ini-file-loader': 4.4.9 - '@smithy/types': 4.14.1 + '@aws-sdk/core': 3.978.4 + '@aws-sdk/types': 3.974.6 + '@smithy/core': 3.36.0 + '@smithy/types': 4.19.0 tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - '@aws-sdk/credential-provider-web-identity@3.972.38': + '@aws-sdk/credential-provider-http@3.972.77': dependencies: - '@aws-sdk/core': 3.974.8 - '@aws-sdk/nested-clients': 3.997.6 - '@aws-sdk/types': 3.973.8 - '@smithy/property-provider': 4.2.14 - '@smithy/shared-ini-file-loader': 4.4.9 - '@smithy/types': 4.14.1 + '@aws-sdk/core': 3.978.4 + '@aws-sdk/types': 3.974.6 + '@smithy/core': 3.36.0 + '@smithy/fetch-http-handler': 5.8.0 + '@smithy/node-http-handler': 4.12.1 + '@smithy/types': 4.19.0 tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - '@aws-sdk/eventstream-handler-node@3.972.14': - dependencies: - '@aws-sdk/types': 3.973.8 - '@smithy/eventstream-codec': 4.2.14 - '@smithy/types': 4.14.1 + '@aws-sdk/credential-provider-ini@3.973.20': + dependencies: + '@aws-sdk/core': 3.978.4 + '@aws-sdk/credential-provider-env': 3.972.75 + '@aws-sdk/credential-provider-http': 3.972.77 + '@aws-sdk/credential-provider-login': 3.972.82 + '@aws-sdk/credential-provider-process': 3.972.75 + '@aws-sdk/credential-provider-sso': 3.973.19 + '@aws-sdk/credential-provider-web-identity': 3.972.81 + '@aws-sdk/nested-clients': 3.997.49 + '@aws-sdk/types': 3.974.6 + '@smithy/core': 3.36.0 + '@smithy/credential-provider-imds': 4.5.2 + '@smithy/types': 4.19.0 tslib: 2.8.1 - '@aws-sdk/middleware-eventstream@3.972.10': + '@aws-sdk/credential-provider-login@3.972.82': dependencies: - '@aws-sdk/types': 3.973.8 - '@smithy/protocol-http': 5.3.14 - '@smithy/types': 4.14.1 + '@aws-sdk/core': 3.978.4 + '@aws-sdk/nested-clients': 3.997.49 + '@aws-sdk/types': 3.974.6 + '@smithy/core': 3.36.0 + '@smithy/types': 4.19.0 tslib: 2.8.1 - '@aws-sdk/middleware-host-header@3.972.10': - dependencies: - '@aws-sdk/types': 3.973.8 - '@smithy/protocol-http': 5.3.14 - '@smithy/types': 4.14.1 + '@aws-sdk/credential-provider-node@3.972.87': + dependencies: + '@aws-sdk/credential-provider-env': 3.972.75 + '@aws-sdk/credential-provider-http': 3.972.77 + '@aws-sdk/credential-provider-ini': 3.973.20 + '@aws-sdk/credential-provider-process': 3.972.75 + '@aws-sdk/credential-provider-sso': 3.973.19 + '@aws-sdk/credential-provider-web-identity': 3.972.81 + '@aws-sdk/types': 3.974.6 + '@smithy/core': 3.36.0 + '@smithy/credential-provider-imds': 4.5.2 + '@smithy/types': 4.19.0 tslib: 2.8.1 - '@aws-sdk/middleware-logger@3.972.10': + '@aws-sdk/credential-provider-process@3.972.75': dependencies: - '@aws-sdk/types': 3.973.8 - '@smithy/types': 4.14.1 + '@aws-sdk/core': 3.978.4 + '@aws-sdk/types': 3.974.6 + '@smithy/core': 3.36.0 + '@smithy/types': 4.19.0 tslib: 2.8.1 - '@aws-sdk/middleware-recursion-detection@3.972.11': + '@aws-sdk/credential-provider-sso@3.973.19': dependencies: - '@aws-sdk/types': 3.973.8 - '@aws/lambda-invoke-store': 0.2.4 - '@smithy/protocol-http': 5.3.14 - '@smithy/types': 4.14.1 - tslib: 2.8.1 - - '@aws-sdk/middleware-sdk-s3@3.972.37': - dependencies: - '@aws-sdk/core': 3.974.8 - '@aws-sdk/types': 3.973.8 - '@aws-sdk/util-arn-parser': 3.972.3 - '@smithy/core': 3.23.17 - '@smithy/node-config-provider': 4.3.14 - '@smithy/protocol-http': 5.3.14 - '@smithy/signature-v4': 5.3.14 - '@smithy/smithy-client': 4.12.13 - '@smithy/types': 4.14.1 - '@smithy/util-config-provider': 4.2.2 - '@smithy/util-middleware': 4.2.14 - '@smithy/util-stream': 4.5.25 - '@smithy/util-utf8': 4.2.2 + '@aws-sdk/core': 3.978.4 + '@aws-sdk/nested-clients': 3.997.49 + '@aws-sdk/token-providers': 3.1153.0 + '@aws-sdk/types': 3.974.6 + '@smithy/core': 3.36.0 + '@smithy/types': 4.19.0 tslib: 2.8.1 - '@aws-sdk/middleware-user-agent@3.972.38': + '@aws-sdk/credential-provider-web-identity@3.972.81': dependencies: - '@aws-sdk/core': 3.974.8 - '@aws-sdk/types': 3.973.8 - '@aws-sdk/util-endpoints': 3.996.8 - '@smithy/core': 3.23.17 - '@smithy/protocol-http': 5.3.14 - '@smithy/types': 4.14.1 - '@smithy/util-retry': 4.3.8 - tslib: 2.8.1 - - '@aws-sdk/middleware-websocket@3.972.16': - dependencies: - '@aws-sdk/types': 3.973.8 - '@aws-sdk/util-format-url': 3.972.10 - '@smithy/eventstream-codec': 4.2.14 - '@smithy/eventstream-serde-browser': 4.2.14 - '@smithy/fetch-http-handler': 5.3.17 - '@smithy/protocol-http': 5.3.14 - '@smithy/signature-v4': 5.3.14 - '@smithy/types': 4.14.1 - '@smithy/util-base64': 4.3.2 - '@smithy/util-hex-encoding': 4.2.2 - '@smithy/util-utf8': 4.2.2 + '@aws-sdk/core': 3.978.4 + '@aws-sdk/nested-clients': 3.997.49 + '@aws-sdk/types': 3.974.6 + '@smithy/core': 3.36.0 + '@smithy/types': 4.19.0 tslib: 2.8.1 - '@aws-sdk/nested-clients@3.997.6': + '@aws-sdk/eventstream-handler-node@3.972.37': dependencies: - '@aws-crypto/sha256-browser': 5.2.0 - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.974.8 - '@aws-sdk/middleware-host-header': 3.972.10 - '@aws-sdk/middleware-logger': 3.972.10 - '@aws-sdk/middleware-recursion-detection': 3.972.11 - '@aws-sdk/middleware-user-agent': 3.972.38 - '@aws-sdk/region-config-resolver': 3.972.13 - '@aws-sdk/signature-v4-multi-region': 3.996.25 - '@aws-sdk/types': 3.973.8 - '@aws-sdk/util-endpoints': 3.996.8 - '@aws-sdk/util-user-agent-browser': 3.972.10 - '@aws-sdk/util-user-agent-node': 3.973.24 - '@smithy/config-resolver': 4.4.17 - '@smithy/core': 3.23.17 - '@smithy/fetch-http-handler': 5.3.17 - '@smithy/hash-node': 4.2.14 - '@smithy/invalid-dependency': 4.2.14 - '@smithy/middleware-content-length': 4.2.14 - '@smithy/middleware-endpoint': 4.4.32 - '@smithy/middleware-retry': 4.5.7 - '@smithy/middleware-serde': 4.2.20 - '@smithy/middleware-stack': 4.2.14 - '@smithy/node-config-provider': 4.3.14 - '@smithy/node-http-handler': 4.6.1 - '@smithy/protocol-http': 5.3.14 - '@smithy/smithy-client': 4.12.13 - '@smithy/types': 4.14.1 - '@smithy/url-parser': 4.2.14 - '@smithy/util-base64': 4.3.2 - '@smithy/util-body-length-browser': 4.2.2 - '@smithy/util-body-length-node': 4.2.3 - '@smithy/util-defaults-mode-browser': 4.3.49 - '@smithy/util-defaults-mode-node': 4.2.54 - '@smithy/util-endpoints': 3.4.2 - '@smithy/util-middleware': 4.2.14 - '@smithy/util-retry': 4.3.8 - '@smithy/util-utf8': 4.2.2 + '@aws-sdk/types': 3.974.6 + '@smithy/core': 3.36.0 + '@smithy/types': 4.19.0 tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - '@aws-sdk/region-config-resolver@3.972.13': + '@aws-sdk/middleware-eventstream@3.972.32': dependencies: - '@aws-sdk/types': 3.973.8 - '@smithy/config-resolver': 4.4.17 - '@smithy/node-config-provider': 4.3.14 - '@smithy/types': 4.14.1 + '@aws-sdk/types': 3.974.6 + '@smithy/core': 3.36.0 + '@smithy/types': 4.19.0 tslib: 2.8.1 - '@aws-sdk/signature-v4-multi-region@3.996.25': + '@aws-sdk/middleware-websocket@3.972.57': dependencies: - '@aws-sdk/middleware-sdk-s3': 3.972.37 - '@aws-sdk/types': 3.973.8 - '@smithy/protocol-http': 5.3.14 - '@smithy/signature-v4': 5.3.14 - '@smithy/types': 4.14.1 + '@aws-sdk/core': 3.978.4 + '@aws-sdk/types': 3.974.6 + '@smithy/core': 3.36.0 + '@smithy/fetch-http-handler': 5.8.0 + '@smithy/signature-v4': 5.7.4 + '@smithy/types': 4.19.0 tslib: 2.8.1 - '@aws-sdk/token-providers@3.1041.0': + '@aws-sdk/nested-clients@3.997.49': dependencies: - '@aws-sdk/core': 3.974.8 - '@aws-sdk/nested-clients': 3.997.6 - '@aws-sdk/types': 3.973.8 - '@smithy/property-provider': 4.2.14 - '@smithy/shared-ini-file-loader': 4.4.9 - '@smithy/types': 4.14.1 + '@aws-sdk/core': 3.978.4 + '@aws-sdk/signature-v4-multi-region': 3.996.48 + '@aws-sdk/types': 3.974.6 + '@smithy/core': 3.36.0 + '@smithy/fetch-http-handler': 5.8.0 + '@smithy/node-http-handler': 4.12.1 + '@smithy/types': 4.19.0 tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - '@aws-sdk/types@3.973.8': + '@aws-sdk/signature-v4-multi-region@3.996.48': dependencies: - '@smithy/types': 4.14.1 + '@aws-sdk/types': 3.974.6 + '@smithy/signature-v4': 5.7.4 + '@smithy/types': 4.19.0 tslib: 2.8.1 - '@aws-sdk/util-arn-parser@3.972.3': + '@aws-sdk/token-providers@3.1048.0': dependencies: + '@aws-sdk/core': 3.978.4 + '@aws-sdk/nested-clients': 3.997.49 + '@aws-sdk/types': 3.974.6 + '@smithy/core': 3.36.0 + '@smithy/types': 4.19.0 tslib: 2.8.1 - '@aws-sdk/util-endpoints@3.996.8': + '@aws-sdk/token-providers@3.1153.0': dependencies: - '@aws-sdk/types': 3.973.8 - '@smithy/types': 4.14.1 - '@smithy/url-parser': 4.2.14 - '@smithy/util-endpoints': 3.4.2 + '@aws-sdk/core': 3.978.4 + '@aws-sdk/nested-clients': 3.997.49 + '@aws-sdk/types': 3.974.6 + '@smithy/core': 3.36.0 + '@smithy/types': 4.19.0 tslib: 2.8.1 - '@aws-sdk/util-format-url@3.972.10': + '@aws-sdk/types@3.974.6': dependencies: - '@aws-sdk/types': 3.973.8 - '@smithy/querystring-builder': 4.2.14 - '@smithy/types': 4.14.1 + '@smithy/types': 4.19.0 tslib: 2.8.1 '@aws-sdk/util-locate-window@3.965.5': dependencies: tslib: 2.8.1 - '@aws-sdk/util-user-agent-browser@3.972.10': - dependencies: - '@aws-sdk/types': 3.973.8 - '@smithy/types': 4.14.1 - bowser: 2.14.1 - tslib: 2.8.1 - - '@aws-sdk/util-user-agent-node@3.973.24': - dependencies: - '@aws-sdk/middleware-user-agent': 3.972.38 - '@aws-sdk/types': 3.973.8 - '@smithy/node-config-provider': 4.3.14 - '@smithy/types': 4.14.1 - '@smithy/util-config-provider': 4.2.2 - tslib: 2.8.1 - - '@aws-sdk/xml-builder@3.972.22': + '@aws-sdk/xml-builder@3.972.41': dependencies: - '@nodable/entities': 2.1.0 - '@smithy/types': 4.14.1 - fast-xml-parser: 5.7.2 + '@smithy/types': 4.19.0 tslib: 2.8.1 - '@aws/lambda-invoke-store@0.2.4': {} + '@aws/lambda-invoke-store@0.3.0': {} '@babel/code-frame@7.29.0': dependencies: @@ -6290,8 +5796,6 @@ snapshots: '@biomejs/cli-win32-x64@2.4.15': optional: true - '@borewit/text-codec@0.2.2': {} - '@changesets/apply-release-plan@7.1.1': dependencies: '@changesets/config': 3.1.4 @@ -6464,6 +5968,76 @@ snapshots: transitivePeerDependencies: - '@algolia/client-search' + '@earendil-works/pi-agent-core@0.79.10(ws@8.22.2)(zod@4.4.2)': + dependencies: + '@earendil-works/pi-ai': 0.79.10(patch_hash=237eec523e8d0cce9b558e208826f47a9eb48ab349831efa35a55dcb76206f6a)(ws@8.22.2)(zod@4.4.2) + ignore: 7.0.5 + typebox: 1.1.38 + yaml: 2.9.0 + transitivePeerDependencies: + - '@modelcontextprotocol/sdk' + - bufferutil + - supports-color + - utf-8-validate + - ws + - zod + + '@earendil-works/pi-ai@0.79.10(patch_hash=237eec523e8d0cce9b558e208826f47a9eb48ab349831efa35a55dcb76206f6a)(ws@8.22.2)(zod@4.4.2)': + dependencies: + '@anthropic-ai/sdk': 0.91.1(zod@4.4.2) + '@aws-sdk/client-bedrock-runtime': 3.1048.0 + '@google/genai': 1.52.0 + '@mistralai/mistralai': 2.2.6(@opentelemetry/api@1.9.0) + '@opentelemetry/api': 1.9.0 + '@smithy/node-http-handler': 4.7.3 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + openai: 6.26.0(ws@8.22.2)(zod@4.4.2) + partial-json: 0.1.7 + typebox: 1.1.38 + transitivePeerDependencies: + - '@modelcontextprotocol/sdk' + - bufferutil + - supports-color + - utf-8-validate + - ws + - zod + + '@earendil-works/pi-coding-agent@0.79.10(ws@8.22.2)(zod@4.4.2)': + dependencies: + '@earendil-works/pi-agent-core': 0.79.10(ws@8.22.2)(zod@4.4.2) + '@earendil-works/pi-ai': 0.79.10(patch_hash=237eec523e8d0cce9b558e208826f47a9eb48ab349831efa35a55dcb76206f6a)(ws@8.22.2)(zod@4.4.2) + '@earendil-works/pi-tui': 0.79.10 + '@silvia-odwyer/photon-node': 0.3.4 + chalk: 5.6.2 + cross-spawn: 7.0.6 + diff: 8.0.4 + glob: 13.0.6 + highlight.js: 10.7.3 + hosted-git-info: 9.0.3 + ignore: 7.0.5 + jiti: 2.7.0 + minimatch: 10.2.5 + proper-lockfile: 4.1.2 + semver: 7.8.0 + typebox: 1.1.38 + undici: 8.12.4 + yaml: 2.9.0 + optionalDependencies: + '@mariozechner/clipboard': 0.3.9 + transitivePeerDependencies: + - '@modelcontextprotocol/sdk' + - bufferutil + - supports-color + - utf-8-validate + - ws + - zod + + '@earendil-works/pi-tui@0.79.10': + dependencies: + get-east-asian-width: 1.6.0 + marked: 18.0.5 + '@electron-internal/extract-zip@1.0.5': {} '@electron/asar@3.4.1': @@ -6832,7 +6406,7 @@ snapshots: '@fontsource-variable/jetbrains-mono@5.2.8': {} - '@google/genai@1.51.0': + '@google/genai@1.52.0': dependencies: google-auth-library: 10.6.2 p-retry: 4.6.2 @@ -6919,139 +6493,58 @@ snapshots: globby: 11.1.0 read-yaml-file: 1.1.0 - '@mariozechner/clipboard-darwin-arm64@0.3.2': + '@mariozechner/clipboard-darwin-arm64@0.3.9': optional: true - '@mariozechner/clipboard-darwin-universal@0.3.2': + '@mariozechner/clipboard-darwin-universal@0.3.9': optional: true - '@mariozechner/clipboard-darwin-x64@0.3.2': + '@mariozechner/clipboard-darwin-x64@0.3.9': optional: true - '@mariozechner/clipboard-linux-arm64-gnu@0.3.2': + '@mariozechner/clipboard-linux-arm64-gnu@0.3.9': optional: true - '@mariozechner/clipboard-linux-arm64-musl@0.3.2': + '@mariozechner/clipboard-linux-arm64-musl@0.3.9': optional: true - '@mariozechner/clipboard-linux-riscv64-gnu@0.3.2': + '@mariozechner/clipboard-linux-riscv64-gnu@0.3.9': optional: true - '@mariozechner/clipboard-linux-x64-gnu@0.3.2': + '@mariozechner/clipboard-linux-x64-gnu@0.3.9': optional: true - '@mariozechner/clipboard-linux-x64-musl@0.3.2': + '@mariozechner/clipboard-linux-x64-musl@0.3.9': optional: true - '@mariozechner/clipboard-win32-arm64-msvc@0.3.2': + '@mariozechner/clipboard-win32-arm64-msvc@0.3.9': optional: true - '@mariozechner/clipboard-win32-x64-msvc@0.3.2': + '@mariozechner/clipboard-win32-x64-msvc@0.3.9': optional: true - '@mariozechner/clipboard@0.3.5': + '@mariozechner/clipboard@0.3.9': optionalDependencies: - '@mariozechner/clipboard-darwin-arm64': 0.3.2 - '@mariozechner/clipboard-darwin-universal': 0.3.2 - '@mariozechner/clipboard-darwin-x64': 0.3.2 - '@mariozechner/clipboard-linux-arm64-gnu': 0.3.2 - '@mariozechner/clipboard-linux-arm64-musl': 0.3.2 - '@mariozechner/clipboard-linux-riscv64-gnu': 0.3.2 - '@mariozechner/clipboard-linux-x64-gnu': 0.3.2 - '@mariozechner/clipboard-linux-x64-musl': 0.3.2 - '@mariozechner/clipboard-win32-arm64-msvc': 0.3.2 - '@mariozechner/clipboard-win32-x64-msvc': 0.3.2 + '@mariozechner/clipboard-darwin-arm64': 0.3.9 + '@mariozechner/clipboard-darwin-universal': 0.3.9 + '@mariozechner/clipboard-darwin-x64': 0.3.9 + '@mariozechner/clipboard-linux-arm64-gnu': 0.3.9 + '@mariozechner/clipboard-linux-arm64-musl': 0.3.9 + '@mariozechner/clipboard-linux-riscv64-gnu': 0.3.9 + '@mariozechner/clipboard-linux-x64-gnu': 0.3.9 + '@mariozechner/clipboard-linux-x64-musl': 0.3.9 + '@mariozechner/clipboard-win32-arm64-msvc': 0.3.9 + '@mariozechner/clipboard-win32-x64-msvc': 0.3.9 optional: true - '@mariozechner/jiti@2.6.5': - dependencies: - std-env: 3.10.0 - yoctocolors: 2.1.2 - - '@mariozechner/pi-agent-core@0.72.1(ws@8.22.2)(zod@4.4.2)': - dependencies: - '@mariozechner/pi-ai': 0.72.1(patch_hash=aac5f6f7549c467fcf2fc41b1a0e606275121a1c3d4216f4708ba85b143b5a84)(ws@8.22.2)(zod@4.4.2) - typebox: 1.1.37 - transitivePeerDependencies: - - '@modelcontextprotocol/sdk' - - aws-crt - - bufferutil - - supports-color - - utf-8-validate - - ws - - zod - - '@mariozechner/pi-ai@0.72.1(patch_hash=aac5f6f7549c467fcf2fc41b1a0e606275121a1c3d4216f4708ba85b143b5a84)(ws@8.22.2)(zod@4.4.2)': - dependencies: - '@anthropic-ai/sdk': 0.91.1(zod@4.4.2) - '@aws-sdk/client-bedrock-runtime': 3.1041.0 - '@google/genai': 1.51.0 - '@mistralai/mistralai': 2.2.1 - chalk: 5.6.2 - openai: 6.26.0(ws@8.22.2)(zod@4.4.2) - partial-json: 0.1.7 - proxy-agent: 6.5.0 - typebox: 1.1.37 - undici: 7.30.1 - zod-to-json-schema: 3.25.2(zod@4.4.2) - transitivePeerDependencies: - - '@modelcontextprotocol/sdk' - - aws-crt - - bufferutil - - supports-color - - utf-8-validate - - ws - - zod - - '@mariozechner/pi-coding-agent@0.72.1(ws@8.22.2)(zod@4.4.2)': - dependencies: - '@mariozechner/jiti': 2.6.5 - '@mariozechner/pi-agent-core': 0.72.1(ws@8.22.2)(zod@4.4.2) - '@mariozechner/pi-ai': 0.72.1(patch_hash=aac5f6f7549c467fcf2fc41b1a0e606275121a1c3d4216f4708ba85b143b5a84)(ws@8.22.2)(zod@4.4.2) - '@mariozechner/pi-tui': 0.72.1 - '@silvia-odwyer/photon-node': 0.3.4 - chalk: 5.6.2 - cli-highlight: 2.1.11 - diff: 8.0.4 - extract-zip: 2.0.1 - file-type: 21.3.4 - glob: 13.0.6 - hosted-git-info: 9.0.3 - ignore: 7.0.5 - marked: 15.0.12 - minimatch: 10.2.5 - proper-lockfile: 4.1.2 - strip-ansi: 7.2.0 - typebox: 1.1.37 - undici: 7.30.1 - uuid: 14.0.0 - yaml: 2.8.4 - optionalDependencies: - '@mariozechner/clipboard': 0.3.5 - transitivePeerDependencies: - - '@modelcontextprotocol/sdk' - - aws-crt - - bufferutil - - supports-color - - utf-8-validate - - ws - - zod - - '@mariozechner/pi-tui@0.72.1': - 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 - optionalDependencies: - koffi: 2.16.1 - - '@mistralai/mistralai@2.2.1': + '@mistralai/mistralai@2.2.6(@opentelemetry/api@1.9.0)': dependencies: + '@opentelemetry/semantic-conventions': 1.43.0 ws: 8.20.0 zod: 4.4.2 zod-to-json-schema: 3.25.2(zod@4.4.2) + optionalDependencies: + '@opentelemetry/api': 1.9.0 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -7059,7 +6552,7 @@ snapshots: '@napi-rs/lzma-linux-x64-gnu@1.5.1': optional: true - '@napi-rs/wasm-runtime@1.2.6(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': + '@napi-rs/wasm-runtime@1.2.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': dependencies: '@emnapi/core': 1.10.0 '@emnapi/runtime': 1.10.0 @@ -7070,8 +6563,6 @@ snapshots: '@noble/hashes@2.4.0': {} - '@nodable/entities@2.1.0': {} - '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -7098,6 +6589,10 @@ snapshots: dependencies: semver: 7.8.5 + '@opentelemetry/api@1.9.0': {} + + '@opentelemetry/semantic-conventions@1.43.0': {} + '@oxc-project/types@0.127.0': {} '@peculiar/asn1-schema@2.10.0': @@ -7203,7 +6698,7 @@ snapshots: dependencies: '@emnapi/core': 1.10.0 '@emnapi/runtime': 1.10.0 - '@napi-rs/wasm-runtime': 1.2.6(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + '@napi-rs/wasm-runtime': 1.2.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) optional: true '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.17': @@ -7337,222 +6832,46 @@ snapshots: '@sindresorhus/is@4.6.0': {} - '@smithy/config-resolver@4.4.17': - dependencies: - '@smithy/node-config-provider': 4.3.14 - '@smithy/types': 4.14.1 - '@smithy/util-config-provider': 4.2.2 - '@smithy/util-endpoints': 3.4.2 - '@smithy/util-middleware': 4.2.14 - tslib: 2.8.1 - - '@smithy/core@3.23.17': - dependencies: - '@smithy/protocol-http': 5.3.14 - '@smithy/types': 4.14.1 - '@smithy/url-parser': 4.2.14 - '@smithy/util-base64': 4.3.2 - '@smithy/util-body-length-browser': 4.2.2 - '@smithy/util-middleware': 4.2.14 - '@smithy/util-stream': 4.5.25 - '@smithy/util-utf8': 4.2.2 - '@smithy/uuid': 1.1.2 - tslib: 2.8.1 - - '@smithy/credential-provider-imds@4.2.14': - dependencies: - '@smithy/node-config-provider': 4.3.14 - '@smithy/property-provider': 4.2.14 - '@smithy/types': 4.14.1 - '@smithy/url-parser': 4.2.14 - tslib: 2.8.1 - - '@smithy/eventstream-codec@4.2.14': - dependencies: - '@aws-crypto/crc32': 5.2.0 - '@smithy/types': 4.14.1 - '@smithy/util-hex-encoding': 4.2.2 - tslib: 2.8.1 - - '@smithy/eventstream-serde-browser@4.2.14': - dependencies: - '@smithy/eventstream-serde-universal': 4.2.14 - '@smithy/types': 4.14.1 - tslib: 2.8.1 - - '@smithy/eventstream-serde-config-resolver@4.3.14': - dependencies: - '@smithy/types': 4.14.1 - tslib: 2.8.1 - - '@smithy/eventstream-serde-node@4.2.14': - dependencies: - '@smithy/eventstream-serde-universal': 4.2.14 - '@smithy/types': 4.14.1 - tslib: 2.8.1 - - '@smithy/eventstream-serde-universal@4.2.14': - dependencies: - '@smithy/eventstream-codec': 4.2.14 - '@smithy/types': 4.14.1 - tslib: 2.8.1 - - '@smithy/fetch-http-handler@5.3.17': + '@smithy/core@3.36.0': dependencies: - '@smithy/protocol-http': 5.3.14 - '@smithy/querystring-builder': 4.2.14 - '@smithy/types': 4.14.1 - '@smithy/util-base64': 4.3.2 + '@smithy/types': 4.19.0 tslib: 2.8.1 - '@smithy/hash-node@4.2.14': + '@smithy/credential-provider-imds@4.5.2': dependencies: - '@smithy/types': 4.14.1 - '@smithy/util-buffer-from': 4.2.2 - '@smithy/util-utf8': 4.2.2 + '@smithy/core': 3.36.0 + '@smithy/types': 4.19.0 tslib: 2.8.1 - '@smithy/invalid-dependency@4.2.14': + '@smithy/fetch-http-handler@5.8.0': dependencies: - '@smithy/types': 4.14.1 + '@smithy/core': 3.36.0 + '@smithy/types': 4.19.0 tslib: 2.8.1 '@smithy/is-array-buffer@2.2.0': dependencies: tslib: 2.8.1 - '@smithy/is-array-buffer@4.2.2': - dependencies: - tslib: 2.8.1 - - '@smithy/middleware-content-length@4.2.14': - dependencies: - '@smithy/protocol-http': 5.3.14 - '@smithy/types': 4.14.1 - tslib: 2.8.1 - - '@smithy/middleware-endpoint@4.4.32': - dependencies: - '@smithy/core': 3.23.17 - '@smithy/middleware-serde': 4.2.20 - '@smithy/node-config-provider': 4.3.14 - '@smithy/shared-ini-file-loader': 4.4.9 - '@smithy/types': 4.14.1 - '@smithy/url-parser': 4.2.14 - '@smithy/util-middleware': 4.2.14 - tslib: 2.8.1 - - '@smithy/middleware-retry@4.5.7': - dependencies: - '@smithy/core': 3.23.17 - '@smithy/node-config-provider': 4.3.14 - '@smithy/protocol-http': 5.3.14 - '@smithy/service-error-classification': 4.3.1 - '@smithy/smithy-client': 4.12.13 - '@smithy/types': 4.14.1 - '@smithy/util-middleware': 4.2.14 - '@smithy/util-retry': 4.3.8 - '@smithy/uuid': 1.1.2 - tslib: 2.8.1 - - '@smithy/middleware-serde@4.2.20': - dependencies: - '@smithy/core': 3.23.17 - '@smithy/protocol-http': 5.3.14 - '@smithy/types': 4.14.1 - tslib: 2.8.1 - - '@smithy/middleware-stack@4.2.14': - dependencies: - '@smithy/types': 4.14.1 - tslib: 2.8.1 - - '@smithy/node-config-provider@4.3.14': - dependencies: - '@smithy/property-provider': 4.2.14 - '@smithy/shared-ini-file-loader': 4.4.9 - '@smithy/types': 4.14.1 - tslib: 2.8.1 - - '@smithy/node-http-handler@4.6.1': - dependencies: - '@smithy/protocol-http': 5.3.14 - '@smithy/querystring-builder': 4.2.14 - '@smithy/types': 4.14.1 - tslib: 2.8.1 - - '@smithy/property-provider@4.2.14': - dependencies: - '@smithy/types': 4.14.1 - tslib: 2.8.1 - - '@smithy/protocol-http@5.3.14': - dependencies: - '@smithy/types': 4.14.1 - tslib: 2.8.1 - - '@smithy/querystring-builder@4.2.14': - dependencies: - '@smithy/types': 4.14.1 - '@smithy/util-uri-escape': 4.2.2 - tslib: 2.8.1 - - '@smithy/querystring-parser@4.2.14': - dependencies: - '@smithy/types': 4.14.1 - tslib: 2.8.1 - - '@smithy/service-error-classification@4.3.1': - dependencies: - '@smithy/types': 4.14.1 - - '@smithy/shared-ini-file-loader@4.4.9': - dependencies: - '@smithy/types': 4.14.1 - tslib: 2.8.1 - - '@smithy/signature-v4@5.3.14': - dependencies: - '@smithy/is-array-buffer': 4.2.2 - '@smithy/protocol-http': 5.3.14 - '@smithy/types': 4.14.1 - '@smithy/util-hex-encoding': 4.2.2 - '@smithy/util-middleware': 4.2.14 - '@smithy/util-uri-escape': 4.2.2 - '@smithy/util-utf8': 4.2.2 - tslib: 2.8.1 - - '@smithy/smithy-client@4.12.13': - dependencies: - '@smithy/core': 3.23.17 - '@smithy/middleware-endpoint': 4.4.32 - '@smithy/middleware-stack': 4.2.14 - '@smithy/protocol-http': 5.3.14 - '@smithy/types': 4.14.1 - '@smithy/util-stream': 4.5.25 - tslib: 2.8.1 - - '@smithy/types@4.14.1': - dependencies: - tslib: 2.8.1 - - '@smithy/url-parser@4.2.14': + '@smithy/node-http-handler@4.12.1': dependencies: - '@smithy/querystring-parser': 4.2.14 - '@smithy/types': 4.14.1 + '@smithy/core': 3.36.0 + '@smithy/types': 4.19.0 tslib: 2.8.1 - '@smithy/util-base64@4.3.2': + '@smithy/node-http-handler@4.7.3': dependencies: - '@smithy/util-buffer-from': 4.2.2 - '@smithy/util-utf8': 4.2.2 + '@smithy/core': 3.36.0 + '@smithy/types': 4.19.0 tslib: 2.8.1 - '@smithy/util-body-length-browser@4.2.2': + '@smithy/signature-v4@5.7.4': dependencies: + '@smithy/core': 3.36.0 + '@smithy/types': 4.19.0 tslib: 2.8.1 - '@smithy/util-body-length-node@4.2.3': + '@smithy/types@4.19.0': dependencies: tslib: 2.8.1 @@ -7561,82 +6880,11 @@ snapshots: '@smithy/is-array-buffer': 2.2.0 tslib: 2.8.1 - '@smithy/util-buffer-from@4.2.2': - dependencies: - '@smithy/is-array-buffer': 4.2.2 - tslib: 2.8.1 - - '@smithy/util-config-provider@4.2.2': - dependencies: - tslib: 2.8.1 - - '@smithy/util-defaults-mode-browser@4.3.49': - dependencies: - '@smithy/property-provider': 4.2.14 - '@smithy/smithy-client': 4.12.13 - '@smithy/types': 4.14.1 - tslib: 2.8.1 - - '@smithy/util-defaults-mode-node@4.2.54': - dependencies: - '@smithy/config-resolver': 4.4.17 - '@smithy/credential-provider-imds': 4.2.14 - '@smithy/node-config-provider': 4.3.14 - '@smithy/property-provider': 4.2.14 - '@smithy/smithy-client': 4.12.13 - '@smithy/types': 4.14.1 - tslib: 2.8.1 - - '@smithy/util-endpoints@3.4.2': - dependencies: - '@smithy/node-config-provider': 4.3.14 - '@smithy/types': 4.14.1 - tslib: 2.8.1 - - '@smithy/util-hex-encoding@4.2.2': - dependencies: - tslib: 2.8.1 - - '@smithy/util-middleware@4.2.14': - dependencies: - '@smithy/types': 4.14.1 - tslib: 2.8.1 - - '@smithy/util-retry@4.3.8': - dependencies: - '@smithy/service-error-classification': 4.3.1 - '@smithy/types': 4.14.1 - tslib: 2.8.1 - - '@smithy/util-stream@4.5.25': - dependencies: - '@smithy/fetch-http-handler': 5.3.17 - '@smithy/node-http-handler': 4.6.1 - '@smithy/types': 4.14.1 - '@smithy/util-base64': 4.3.2 - '@smithy/util-buffer-from': 4.2.2 - '@smithy/util-hex-encoding': 4.2.2 - '@smithy/util-utf8': 4.2.2 - tslib: 2.8.1 - - '@smithy/util-uri-escape@4.2.2': - dependencies: - tslib: 2.8.1 - '@smithy/util-utf8@2.3.0': dependencies: '@smithy/util-buffer-from': 2.2.0 tslib: 2.8.1 - '@smithy/util-utf8@4.2.2': - dependencies: - '@smithy/util-buffer-from': 4.2.2 - tslib: 2.8.1 - - '@smithy/uuid@1.1.2': - dependencies: - tslib: 2.8.1 - '@standard-schema/spec@1.1.0': {} '@szmarczak/http-timer@4.0.6': @@ -7744,15 +6992,6 @@ snapshots: dependencies: '@testing-library/dom': 10.4.1 - '@tokenizer/inflate@0.4.1': - dependencies: - debug: 4.4.3 - token-types: 6.1.2 - transitivePeerDependencies: - - supports-color - - '@tokenizer/token@0.3.0': {} - '@tootallnate/quickjs-emscripten@0.23.0': {} '@turbo/darwin-64@2.9.14': @@ -7854,8 +7093,6 @@ snapshots: '@types/mdurl@2.0.0': {} - '@types/mime-types@2.1.4': {} - '@types/ms@2.1.0': {} '@types/node@12.20.55': {} @@ -8149,8 +7386,6 @@ snapshots: ansi-styles@6.2.3: {} - any-promise@1.3.0: {} - app-builder-bin@5.0.0-alpha.12: {} app-builder-lib@26.15.3(dmg-builder@26.15.3(electron-builder-squirrel-windows@26.8.1))(electron-builder-squirrel-windows@26.8.1): @@ -8282,13 +7517,13 @@ snapshots: at-least-node@1.0.0: {} - autoprefixer@10.5.0(postcss@8.5.32): + autoprefixer@10.5.0(postcss@8.5.31): dependencies: browserslist: 4.28.2 caniuse-lite: 1.0.30001788 fraction.js: 5.3.4 picocolors: 1.1.1 - postcss: 8.5.32 + postcss: 8.5.31 postcss-value-parser: 4.2.0 aws4@1.13.2: {} @@ -8373,10 +7608,6 @@ snapshots: dependencies: balanced-match: 4.0.4 - brace-expansion@5.0.5: - dependencies: - balanced-match: 4.0.4 - braces@3.0.3: dependencies: fill-range: 7.1.1 @@ -8537,15 +7768,6 @@ snapshots: dependencies: restore-cursor: 3.1.0 - cli-highlight@2.1.11: - dependencies: - chalk: 4.1.2 - highlight.js: 10.7.3 - mz: 2.7.0 - parse5: 5.1.1 - parse5-htmlparser2-tree-adapter: 6.0.1 - yargs: 16.2.2 - cli-spinners@2.9.2: {} cli-truncate@2.1.0: @@ -8554,12 +7776,6 @@ snapshots: string-width: 4.2.3 optional: true - cliui@7.0.4: - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - cliui@8.0.1: dependencies: string-width: 4.2.3 @@ -9068,17 +8284,6 @@ snapshots: fast-uri@3.1.8: {} - fast-xml-builder@1.1.5: - dependencies: - path-expression-matcher: 1.5.0 - - fast-xml-parser@5.7.2: - dependencies: - '@nodable/entities': 2.1.0 - fast-xml-builder: 1.1.5 - path-expression-matcher: 1.5.0 - strnum: 2.2.3 - fastq@1.20.3: dependencies: reusify: 1.1.0 @@ -9096,15 +8301,6 @@ snapshots: node-domexception: 1.0.0 web-streams-polyfill: 3.3.3 - file-type@21.3.4: - dependencies: - '@tokenizer/inflate': 0.4.1 - strtok3: 10.3.5 - token-types: 6.1.2 - uint8array-extras: 1.5.0 - transitivePeerDependencies: - - supports-color - filelist@1.0.6: dependencies: minimatch: 5.1.9 @@ -9217,7 +8413,7 @@ snapshots: get-caller-file@2.0.5: {} - get-east-asian-width@1.5.0: {} + get-east-asian-width@1.6.0: {} get-intrinsic@1.3.0: dependencies: @@ -9264,7 +8460,7 @@ snapshots: glob@13.0.6: dependencies: - minimatch: 10.2.5 + minimatch: 10.2.6 minipass: 7.1.3 path-scurry: 2.0.2 @@ -9577,7 +8773,7 @@ snapshots: json-schema-to-ts@3.1.1: dependencies: - '@babel/runtime': 7.29.2 + '@babel/runtime': 7.29.10 ts-algebra: 2.0.0 json-schema-traverse@0.4.1: {} @@ -9621,9 +8817,6 @@ snapshots: dependencies: json-buffer: 3.0.1 - koffi@2.16.1: - optional: true - lazy-val@1.0.5: {} lie@3.3.0: @@ -9795,7 +8988,7 @@ snapshots: markdown-table@3.0.4: {} - marked@15.0.12: {} + marked@18.0.5: {} matcher@3.0.0: dependencies: @@ -10157,16 +9350,10 @@ snapshots: mime-db@1.52.0: {} - mime-db@1.54.0: {} - mime-types@2.1.35: dependencies: mime-db: 1.52.0 - mime-types@3.0.2: - dependencies: - mime-db: 1.54.0 - mime@2.6.0: {} mimic-fn@2.1.0: {} @@ -10177,7 +9364,7 @@ snapshots: minimatch@10.2.5: dependencies: - brace-expansion: 5.0.5 + brace-expansion: 5.0.12 minimatch@10.2.6: dependencies: @@ -10243,12 +9430,6 @@ snapshots: ms@2.1.3: {} - mz@2.7.0: - dependencies: - any-promise: 1.3.0 - object-assign: 4.1.1 - thenify-all: 1.6.0 - nanoid@3.3.19: {} nanoid@3.3.20: {} @@ -10322,8 +9503,6 @@ snapshots: normalize-url@6.1.0: {} - object-assign@4.1.1: {} - object-keys@1.1.1: optional: true @@ -10427,14 +9606,6 @@ snapshots: is-decimal: 2.0.1 is-hexadecimal: 2.0.1 - parse5-htmlparser2-tree-adapter@6.0.1: - dependencies: - parse5: 6.0.1 - - parse5@5.1.1: {} - - parse5@6.0.1: {} - parse5@8.0.1: dependencies: entities: 8.1.0 @@ -10443,8 +9614,6 @@ snapshots: path-exists@4.0.0: {} - path-expression-matcher@1.5.0: {} - path-is-absolute@1.0.1: {} path-key@3.1.1: {} @@ -10506,7 +9675,7 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.2 - postcss@8.5.32: + postcss@8.5.31: dependencies: nanoid: 3.3.20 picocolors: 1.1.1 @@ -10859,6 +10028,8 @@ snapshots: semver@7.7.4: {} + semver@7.8.0: {} + semver@7.8.5: {} serialize-error@7.0.1: @@ -10952,8 +10123,6 @@ snapshots: stat-mode@1.0.0: {} - std-env@3.10.0: {} - std-env@4.3.0: {} streamx@2.25.0: @@ -11000,12 +10169,6 @@ snapshots: strip-bom@3.0.0: {} - strnum@2.2.3: {} - - strtok3@10.3.5: - dependencies: - '@tokenizer/token': 0.3.0 - style-to-js@1.1.21: dependencies: style-to-object: 1.0.14 @@ -11090,14 +10253,6 @@ snapshots: transitivePeerDependencies: - react-native-b4a - thenify-all@1.6.0: - dependencies: - thenify: 3.3.1 - - thenify@3.3.1: - dependencies: - any-promise: 1.3.0 - tiny-async-pool@1.3.0: dependencies: semver: 5.7.2 @@ -11125,12 +10280,6 @@ snapshots: dependencies: is-number: 7.0.0 - token-types@6.1.2: - dependencies: - '@borewit/text-codec': 0.2.2 - '@tokenizer/token': 0.3.0 - ieee754: 1.2.1 - trim-lines@3.0.1: {} trough@2.2.0: {} @@ -11161,14 +10310,12 @@ snapshots: type-fest@0.13.1: optional: true - typebox@1.1.37: {} + typebox@1.1.38: {} typed-query-selector@2.12.2: {} typescript@6.0.3: {} - uint8array-extras@1.5.0: {} - undici-types@6.21.0: {} undici-types@7.24.6: {} @@ -11178,7 +10325,10 @@ snapshots: undici@6.29.1: {} - undici@7.30.1: {} + undici@7.30.1: + optional: true + + undici@8.12.4: {} unified@11.0.5: dependencies: @@ -11251,8 +10401,6 @@ snapshots: util-deprecate@1.0.2: {} - uuid@14.0.0: {} - verror@1.10.1: dependencies: assert-plus: 1.0.0 @@ -11306,7 +10454,7 @@ snapshots: dependencies: lightningcss: 1.33.0 picomatch: 4.0.7 - postcss: 8.5.32 + postcss: 8.5.31 rolldown: 1.0.0-rc.17 tinyglobby: 0.2.17 optionalDependencies: @@ -11321,7 +10469,7 @@ snapshots: dependencies: lightningcss: 1.33.0 picomatch: 4.0.7 - postcss: 8.5.32 + postcss: 8.5.31 rolldown: 1.0.0-rc.17 tinyglobby: 0.2.17 optionalDependencies: @@ -11332,7 +10480,7 @@ snapshots: tsx: 4.22.3 yaml: 2.9.0 - vitepress@1.6.4(@algolia/client-search@5.50.2)(@types/node@26.6.5)(jiti@2.7.0)(lightningcss@1.33.0)(postcss@8.5.32)(search-insights@2.17.3)(tsx@4.22.3)(typescript@6.0.3)(yaml@2.9.0): + vitepress@1.6.4(@algolia/client-search@5.50.2)(@types/node@26.6.5)(jiti@2.7.0)(lightningcss@1.33.0)(postcss@8.5.31)(search-insights@2.17.3)(tsx@4.22.3)(typescript@6.0.3)(yaml@2.9.0): dependencies: '@docsearch/css': 3.8.2 '@docsearch/js': 3.8.2(@algolia/client-search@5.50.2)(search-insights@2.17.3) @@ -11353,7 +10501,7 @@ snapshots: vite: 6.4.2(@types/node@26.6.5)(jiti@2.7.0)(lightningcss@1.33.0)(tsx@4.22.3)(yaml@2.9.0) vue: 3.5.32(typescript@6.0.3) optionalDependencies: - postcss: 8.5.32 + postcss: 8.5.31 transitivePeerDependencies: - '@algolia/client-search' - '@types/node' @@ -11384,7 +10532,7 @@ snapshots: - universal-cookie - yaml - vitest@4.1.12(@types/node@22.20.5)(happy-dom@21.0.4)(vite@7.3.6(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.33.0)(tsx@4.22.3)(yaml@2.9.0)): + vitest@4.1.12(@opentelemetry/api@1.9.0)(@types/node@22.20.5)(happy-dom@21.0.4)(vite@7.3.6(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.33.0)(tsx@4.22.3)(yaml@2.9.0)): dependencies: '@vitest/expect': 4.1.12 '@vitest/mocker': 4.1.12(vite@7.3.6(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.33.0)(tsx@4.22.3)(yaml@2.9.0)) @@ -11407,12 +10555,13 @@ snapshots: vite: 7.3.6(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.33.0)(tsx@4.22.3)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: + '@opentelemetry/api': 1.9.0 '@types/node': 22.20.5 happy-dom: 21.0.4 transitivePeerDependencies: - msw - vitest@4.1.12(@types/node@22.20.5)(happy-dom@21.0.4)(vite@8.0.10(@types/node@22.20.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.3)(yaml@2.9.0)): + vitest@4.1.12(@opentelemetry/api@1.9.0)(@types/node@22.20.5)(happy-dom@21.0.4)(vite@8.0.10(@types/node@22.20.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.3)(yaml@2.9.0)): dependencies: '@vitest/expect': 4.1.12 '@vitest/mocker': 4.1.12(vite@8.0.10(@types/node@22.20.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.3)(yaml@2.9.0)) @@ -11435,12 +10584,13 @@ snapshots: vite: 8.0.10(@types/node@22.20.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.3)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: + '@opentelemetry/api': 1.9.0 '@types/node': 22.20.5 happy-dom: 21.0.4 transitivePeerDependencies: - msw - vitest@4.1.12(@types/node@26.6.5)(happy-dom@21.0.4)(vite@8.0.10(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.3)(yaml@2.9.0)): + vitest@4.1.12(@opentelemetry/api@1.9.0)(@types/node@26.6.5)(happy-dom@21.0.4)(vite@8.0.10(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.3)(yaml@2.9.0)): dependencies: '@vitest/expect': 4.1.12 '@vitest/mocker': 4.1.12(vite@8.0.10(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.3)(yaml@2.9.0)) @@ -11463,6 +10613,7 @@ snapshots: vite: 8.0.10(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.22.3)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: + '@opentelemetry/api': 1.9.0 '@types/node': 26.6.5 happy-dom: 21.0.4 transitivePeerDependencies: @@ -11543,24 +10694,10 @@ snapshots: yallist@5.0.0: {} - yaml@2.8.4: {} - yaml@2.9.0: {} - yargs-parser@20.2.9: {} - yargs-parser@21.1.1: {} - yargs@16.2.2: - dependencies: - cliui: 7.0.4 - escalade: 3.2.0 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 20.2.9 - yargs@17.7.3: dependencies: cliui: 8.0.1 @@ -11587,8 +10724,6 @@ snapshots: yocto-queue@0.1.0: {} - yoctocolors@2.1.2: {} - zip-lib@1.3.2: dependencies: yauzl: 3.3.0 diff --git a/website/architecture.md b/website/architecture.md index 417ea23be..49f56caa0 100644 --- a/website/architecture.md +++ b/website/architecture.md @@ -35,7 +35,7 @@ A bird's-eye view. Detailed module READMEs live in each `packages/*/README.md`. |---|---| | `apps/desktop` | Electron shell — main process owns disk, workspace files, JSONL sessions, IPC, and desktop integration. Renderer hosts React UI. No provider SDK logic here. | | `packages/core` | Generation orchestration. Prompt + design system + history → providers → artifact stream → events. | -| `packages/providers` | Wraps `@mariozechner/pi-ai` and adds the missing capabilities. App code never imports a provider SDK directly. | +| `packages/providers` | Wraps `@earendil-works/pi-ai` and adds the missing capabilities. App code never imports a provider SDK directly. | | `packages/runtime` | Sandbox preview. Iframe `srcdoc` + esbuild-wasm + import maps + overlay scripts for inline comments and sliders. | | `packages/ui` | Design tokens (CSS variables) + Radix-based primitives + Tailwind preset. | | `packages/artifacts` | Zod schemas for HTML / SVG / slide deck / asset bundle + `` streaming parser. |