From 15cf49222f92e7ff68ec9af049d0295b4a45e194 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Mon, 11 May 2026 03:35:00 +0100 Subject: [PATCH] build: refresh deps and route testbox through crabbox --- .agents/skills/crabbox/SKILL.md | 24 +- .../skills/openclaw-test-performance/SKILL.md | 10 +- .agents/skills/openclaw-testing/SKILL.md | 13 +- CHANGELOG.md | 2 + .../Sources/OpenClaw/ModelCatalogLoader.swift | 2 +- docs/ci.md | 30 +- docs/concepts/oauth.md | 2 +- docs/gateway/doctor.md | 2 +- docs/pi.md | 12 +- docs/plugins/compatibility.md | 14 +- .../session-management-compaction.md | 2 +- .../mantle-anthropic.runtime.test.ts | 2 +- .../mantle-anthropic.runtime.ts | 6 +- extensions/amazon-bedrock-mantle/package.json | 2 +- extensions/amazon-bedrock/package.json | 2 +- .../amazon-bedrock/register.sync.runtime.ts | 6 +- extensions/anthropic-vertex/api.test.ts | 2 +- extensions/anthropic-vertex/api.ts | 2 +- extensions/anthropic-vertex/package.json | 4 +- .../anthropic-vertex/stream-runtime.test.ts | 2 +- extensions/anthropic-vertex/stream-runtime.ts | 4 +- extensions/anthropic/package.json | 2 +- extensions/anthropic/stream-wrappers.test.ts | 2 +- extensions/anthropic/stream-wrappers.ts | 4 +- .../browser/src/browser-tool.actions.ts | 2 +- extensions/byteplus/live.test.ts | 2 +- extensions/chutes/oauth.ts | 2 +- .../cloudflare-ai-gateway/index.test.ts | 2 +- .../stream-wrappers.test.ts | 2 +- .../cloudflare-ai-gateway/stream-wrappers.ts | 2 +- extensions/codex/package.json | 2 +- .../codex/src/app-server/auth-bridge.test.ts | 2 +- .../context-engine-projection.test.ts | 2 +- ...delivery-no-reply-runtime-contract.test.ts | 2 +- .../src/app-server/dynamic-tools.test.ts | 2 +- .../codex/src/app-server/dynamic-tools.ts | 4 +- .../src/app-server/event-projector.test.ts | 2 +- .../codex/src/app-server/event-projector.ts | 2 +- .../outcome-fallback-runtime-contract.test.ts | 2 +- .../run-attempt.context-engine.test.ts | 4 +- .../codex/src/app-server/run-attempt.test.ts | 2 +- .../codex/src/app-server/session-history.ts | 4 +- .../codex/src/app-server/test-support.ts | 2 +- extensions/codex/src/manifest.test.ts | 2 +- extensions/deepseek/deepseek.live.test.ts | 2 +- extensions/deepseek/index.test.ts | 4 +- .../src/actions/handle-action.guild-admin.ts | 2 +- .../discord/src/actions/handle-action.ts | 2 +- .../discord/src/actions/runtime.guild.ts | 2 +- .../discord/src/actions/runtime.messaging.ts | 2 +- .../discord/src/actions/runtime.moderation.ts | 2 +- .../discord/src/actions/runtime.presence.ts | 2 +- extensions/discord/src/actions/runtime.ts | 2 +- extensions/fireworks/package.json | 2 +- extensions/fireworks/stream.test.ts | 4 +- extensions/fireworks/stream.ts | 4 +- .../connection-bound-ids.live.test.ts | 2 +- extensions/github-copilot/models.test.ts | 8 +- extensions/github-copilot/package.json | 2 +- extensions/github-copilot/stream.ts | 4 +- .../google/google-shared.test-helpers.ts | 2 +- extensions/google/google-shared.test.ts | 4 +- extensions/google/index.test.ts | 2 +- extensions/google/package.json | 2 +- extensions/google/transport-stream.test.ts | 2 +- extensions/google/transport-stream.ts | 4 +- extensions/kilocode/index.test.ts | 4 +- extensions/kimi-coding/package.json | 2 +- extensions/kimi-coding/stream.test.ts | 4 +- extensions/kimi-coding/stream.ts | 4 +- extensions/lmstudio/package.json | 2 +- extensions/lmstudio/src/stream.test.ts | 4 +- extensions/lmstudio/src/stream.ts | 4 +- extensions/matrix/src/tool-actions.ts | 2 +- extensions/minimax/index.test.ts | 4 +- extensions/moonshot/index.test.ts | 2 +- extensions/ollama/package.json | 2 +- extensions/ollama/src/stream.ts | 6 +- extensions/openai/index.test.ts | 2 +- extensions/openai/native-web-search.ts | 4 +- .../openai/openai-codex-oauth.runtime.ts | 2 +- .../openai/openai-codex-provider.runtime.ts | 2 +- .../openai/openai-provider.live.test.ts | 2 +- extensions/openai/openai-provider.test.ts | 4 +- extensions/openai/openai.live.test.ts | 4 +- extensions/openai/openclaw.plugin.test.ts | 2 +- extensions/openai/package.json | 2 +- extensions/opencode-go/index.test.ts | 2 +- .../opencode/media-understanding-provider.ts | 2 +- extensions/openrouter/index.test.ts | 26 +- extensions/openrouter/openrouter.live.test.ts | 2 +- extensions/openrouter/stream.ts | 2 +- extensions/qwen/stream.test.ts | 4 +- extensions/qwen/stream.ts | 2 +- extensions/slack/src/action-runtime.ts | 2 +- extensions/slack/src/channel-actions.ts | 2 +- .../slack/src/message-action-dispatch.ts | 2 +- extensions/telegram/src/action-runtime.ts | 2 +- .../provider-model-test-helpers.ts | 2 +- extensions/twitch/package.json | 6 +- extensions/vllm/stream.test.ts | 4 +- extensions/vllm/stream.ts | 2 +- extensions/whatsapp/src/action-runtime.ts | 2 +- extensions/xai/package.json | 2 +- extensions/xai/stream.test.ts | 6 +- extensions/xai/stream.ts | 4 +- extensions/xai/test-helpers.ts | 4 +- extensions/xai/x-search-tool-shared.ts | 2 +- extensions/zai/index.test.ts | 4 +- package.json | 13 +- pnpm-lock.yaml | 950 ++++-------------- pnpm-workspace.yaml | 3 +- scripts/bench-model.ts | 2 +- scripts/blacksmith-testbox-runner.mjs | 194 ---- scripts/blacksmith-testbox-state.mjs | 194 ---- scripts/check-changed.mjs | 37 +- scripts/control-ui-i18n.ts | 2 +- .../session-runtime-context-docker-client.ts | 2 +- scripts/lib/dependency-ownership.json | 8 +- scripts/package-mac-app.sh | 2 +- scripts/test-projects.test-support.mjs | 12 - scripts/testbox-sync-sanity.mjs | 134 --- skills/coding-agent/SKILL.md | 2 +- src/agents/anthropic-payload-log.test.ts | 2 +- src/agents/anthropic-payload-log.ts | 4 +- .../anthropic-transport-stream.live.test.ts | 2 +- src/agents/anthropic-transport-stream.test.ts | 2 +- src/agents/anthropic-transport-stream.ts | 4 +- src/agents/anthropic-vertex-stream.ts | 2 +- src/agents/anthropic.setup-token.live.test.ts | 2 +- src/agents/apply-patch.ts | 2 +- .../auth-profiles/oauth-refresh-queue.test.ts | 2 +- .../oauth.adopt-identity.test.ts | 2 +- .../oauth.concurrent-agents.test.ts | 2 +- .../oauth.fallback-to-main-agent.test.ts | 4 +- .../oauth.mirror-refresh.test.ts | 2 +- ...auth.openai-codex-refresh-fallback.test.ts | 6 +- src/agents/auth-profiles/oauth.ts | 2 +- src/agents/bash-tools.exec-host-gateway.ts | 2 +- .../bash-tools.exec-host-node-phases.ts | 2 +- src/agents/bash-tools.exec-host-node.ts | 2 +- src/agents/bash-tools.exec-host-shared.ts | 2 +- src/agents/bash-tools.exec-runtime.ts | 2 +- src/agents/bash-tools.exec.ts | 2 +- src/agents/bash-tools.process-send-keys.ts | 2 +- src/agents/bash-tools.process.ts | 2 +- src/agents/btw-transcript.ts | 2 +- src/agents/btw.test.ts | 6 +- src/agents/btw.ts | 2 +- src/agents/cache-trace.ts | 2 +- src/agents/chutes-oauth.ts | 2 +- src/agents/cli-runner.helpers.test.ts | 2 +- src/agents/cli-runner.reliability.test.ts | 2 +- src/agents/cli-runner.ts | 2 +- src/agents/cli-runner/helpers.ts | 4 +- src/agents/cli-runner/prepare.test.ts | 2 +- src/agents/cli-runner/session-history.test.ts | 2 +- src/agents/cli-runner/session-history.ts | 2 +- src/agents/cli-runner/types.ts | 2 +- src/agents/command/attempt-execution.ts | 2 +- src/agents/command/cli-compaction.test.ts | 2 +- src/agents/command/cli-compaction.ts | 4 +- src/agents/compaction-real-conversation.ts | 2 +- ...compaction.identifier-preservation.test.ts | 10 +- src/agents/compaction.retry.test.ts | 12 +- .../compaction.summarize-fallback.test.ts | 12 +- src/agents/compaction.test.ts | 4 +- src/agents/compaction.token-sanitize.test.ts | 8 +- .../compaction.tool-result-details.test.ts | 10 +- src/agents/compaction.ts | 6 +- src/agents/copilot-dynamic-headers.ts | 2 +- src/agents/custom-api-registry.test.ts | 2 +- src/agents/custom-api-registry.ts | 4 +- src/agents/google-gemini-switch.live.test.ts | 2 +- .../harness/codex-app-server-extensions.ts | 2 +- .../harness/context-engine-lifecycle.test.ts | 2 +- .../harness/context-engine-lifecycle.ts | 2 +- src/agents/harness/hook-helpers.ts | 2 +- .../harness/prompt-compaction-hook-helpers.ts | 2 +- src/agents/harness/selection.test.ts | 2 +- src/agents/harness/v2.test.ts | 2 +- src/agents/live-cache-regression-runner.ts | 2 +- src/agents/live-cache-test-support.ts | 2 +- src/agents/live-model-turn-probes.ts | 2 +- src/agents/minimax.live.test.ts | 2 +- src/agents/model-auth.profiles.test.ts | 2 +- src/agents/model-auth.test.ts | 2 +- src/agents/model-auth.ts | 2 +- src/agents/model-compat.test.ts | 2 +- src/agents/model-scan.ts | 2 +- src/agents/models.profiles.live.test.ts | 2 +- src/agents/moonshot.live.test.ts | 2 +- src/agents/openai-completions-compat.ts | 2 +- .../openai-reasoning-compat.live.test.ts | 6 +- .../openai-responses-payload-policy.test.ts | 2 +- .../openai-responses.reasoning-replay.test.ts | 4 +- src/agents/openai-thinking-contract.test.ts | 8 +- src/agents/openai-transport-stream.test.ts | 2 +- src/agents/openai-transport-stream.ts | 6 +- ...enclaw-owned-tool-runtime-contract.test.ts | 4 +- src/agents/pi-bundle-lsp-runtime.ts | 4 +- src/agents/pi-bundle-mcp-materialize.ts | 2 +- ...d-helpers.formatassistanterrortext.test.ts | 2 +- ...ssistant-text-blocks-but-preserves.test.ts | 4 +- ...pi-embedded-helpers.validate-turns.test.ts | 2 +- src/agents/pi-embedded-helpers/bootstrap.ts | 2 +- src/agents/pi-embedded-helpers/errors.test.ts | 2 +- src/agents/pi-embedded-helpers/errors.ts | 2 +- src/agents/pi-embedded-helpers/images.ts | 2 +- src/agents/pi-embedded-helpers/openai.ts | 2 +- src/agents/pi-embedded-helpers/turns.ts | 2 +- ...dded-runner-extraparams-openrouter.test.ts | 2 +- ...i-embedded-runner-extraparams.live.test.ts | 4 +- ...mbedded-runner-extraparams.test-support.ts | 4 +- .../pi-embedded-runner-extraparams.test.ts | 4 +- ...-runner.anthropic-tool-replay.live.test.ts | 2 +- .../pi-embedded-runner.cache.live.test.ts | 2 +- src/agents/pi-embedded-runner.e2e.test.ts | 9 +- .../pi-embedded-runner.extensions.test.ts | 2 +- src/agents/pi-embedded-runner.guard.test.ts | 4 +- ...ner.guard.waitforidle-before-flush.test.ts | 4 +- ...-embedded-runner.limithistoryturns.test.ts | 2 +- ...runner.openai-tool-id-preservation.test.ts | 2 +- ...pi-agent.auth-profile-rotation.e2e.test.ts | 2 +- ...r.sanitize-session-history.test-harness.ts | 4 +- ...ed-runner.sanitize-session-history.test.ts | 4 +- .../anthropic-family-tool-payload-compat.ts | 4 +- .../compact.hooks.harness.ts | 8 +- .../pi-embedded-runner/compact.hooks.test.ts | 2 +- src/agents/pi-embedded-runner/compact.ts | 4 +- .../pi-embedded-runner/compaction-hooks.ts | 2 +- .../compaction-successor-transcript.test.ts | 2 +- .../compaction-successor-transcript.ts | 2 +- .../pi-embedded-runner/extensions.test.ts | 4 +- src/agents/pi-embedded-runner/extensions.ts | 4 +- ...tra-params.cache-retention-default.test.ts | 4 +- .../extra-params.google.test.ts | 4 +- .../extra-params.kilocode.test.ts | 4 +- ...ra-params.openrouter-cache-control.test.ts | 2 +- .../extra-params.provider-runtime.test.ts | 4 +- .../extra-params.test-support.ts | 4 +- src/agents/pi-embedded-runner/extra-params.ts | 8 +- .../extra-params.zai-tool-stream.test.ts | 4 +- .../google-prompt-cache.test.ts | 4 +- .../pi-embedded-runner/google-prompt-cache.ts | 4 +- src/agents/pi-embedded-runner/history.ts | 2 +- .../manual-compaction-boundary.test.ts | 6 +- .../manual-compaction-boundary.ts | 4 +- .../minimax-stream-wrappers.test.ts | 4 +- .../minimax-stream-wrappers.ts | 4 +- .../model-context-tokens.ts | 2 +- .../model.inline-provider.ts | 2 +- .../model.provider-normalization.ts | 2 +- .../model.static-catalog.ts | 2 +- src/agents/pi-embedded-runner/model.ts | 4 +- .../moonshot-stream-wrappers.ts | 4 +- .../moonshot-thinking-stream-wrappers.ts | 4 +- .../openai-stream-wrappers.test.ts | 6 +- .../openai-stream-wrappers.ts | 6 +- .../proxy-stream-wrappers.test.ts | 6 +- .../proxy-stream-wrappers.ts | 4 +- .../pi-embedded-runner/replay-history.test.ts | 2 +- .../pi-embedded-runner/replay-history.ts | 4 +- .../run/assistant-failover.ts | 2 +- .../pi-embedded-runner/run/attempt-session.ts | 2 +- .../run/attempt.context-engine-helpers.ts | 4 +- .../attempt.memory-flush-forwarding.test.ts | 4 +- .../attempt.model-diagnostic-events.test.ts | 2 +- .../run/attempt.model-diagnostic-events.ts | 2 +- .../run/attempt.sessions-yield.ts | 2 +- ...mpt.spawn-workspace.context-engine.test.ts | 2 +- ....spawn-workspace.context-injection.test.ts | 2 +- .../attempt.spawn-workspace.test-support.ts | 6 +- .../run/attempt.stop-reason-recovery.test.ts | 4 +- .../run/attempt.stop-reason-recovery.ts | 4 +- .../pi-embedded-runner/run/attempt.test.ts | 2 +- .../run/attempt.tool-call-argument-repair.ts | 4 +- .../attempt.tool-call-normalization.test.ts | 2 +- .../run/attempt.tool-call-normalization.ts | 4 +- src/agents/pi-embedded-runner/run/attempt.ts | 4 +- .../run/auth-controller.test.ts | 2 +- .../pi-embedded-runner/run/auth-controller.ts | 2 +- .../run/compaction-timeout.ts | 2 +- .../pi-embedded-runner/run/helpers.test.ts | 2 +- src/agents/pi-embedded-runner/run/helpers.ts | 2 +- .../run/history-image-prune.test.ts | 4 +- .../run/history-image-prune.ts | 2 +- src/agents/pi-embedded-runner/run/images.ts | 2 +- .../pi-embedded-runner/run/incomplete-turn.ts | 2 +- .../run/llm-idle-timeout.ts | 4 +- src/agents/pi-embedded-runner/run/params.ts | 4 +- .../run/payloads.errors.test.ts | 2 +- .../pi-embedded-runner/run/payloads.test.ts | 2 +- src/agents/pi-embedded-runner/run/payloads.ts | 2 +- .../run/preemptive-compaction.test.ts | 2 +- .../run/preemptive-compaction.ts | 4 +- .../pi-embedded-runner/run/stream-wrapper.ts | 2 +- src/agents/pi-embedded-runner/run/types.ts | 6 +- ...ession-history.tool-result-details.test.ts | 6 +- .../stream-payload-utils.ts | 2 +- .../stream-resolution.test.ts | 4 +- .../pi-embedded-runner/stream-resolution.ts | 4 +- .../pi-embedded-runner/system-prompt.test.ts | 2 +- .../pi-embedded-runner/system-prompt.ts | 4 +- .../pi-embedded-runner/thinking.test.ts | 4 +- src/agents/pi-embedded-runner/thinking.ts | 4 +- .../tool-call-argument-decoding.ts | 4 +- .../pi-embedded-runner/tool-name-allowlist.ts | 2 +- .../tool-result-char-estimator.test.ts | 2 +- .../tool-result-char-estimator.ts | 2 +- .../tool-result-context-guard.test.ts | 2 +- .../tool-result-context-guard.ts | 2 +- .../tool-result-truncation.test.ts | 6 +- .../tool-result-truncation.ts | 6 +- .../pi-embedded-runner/tool-schema-runtime.ts | 2 +- src/agents/pi-embedded-runner/tool-split.ts | 2 +- .../transcript-file-state.ts | 2 +- .../transcript-rewrite.test.ts | 4 +- .../pi-embedded-runner/transcript-rewrite.ts | 4 +- .../usage-reporting.test.ts | 2 +- src/agents/pi-embedded-runner/utils.ts | 2 +- .../pi-embedded-runner/zai-stream-wrappers.ts | 4 +- .../pi-embedded-subscribe.e2e-harness.ts | 2 +- ...-embedded-subscribe.handlers.compaction.ts | 2 +- ...pi-embedded-subscribe.handlers.messages.ts | 4 +- ...-embedded-subscribe.handlers.tools.test.ts | 2 +- .../pi-embedded-subscribe.handlers.tools.ts | 2 +- .../pi-embedded-subscribe.handlers.types.ts | 2 +- .../pi-embedded-subscribe.reply-tags.test.ts | 2 +- ...-emit-duplicate-block-replies-text.test.ts | 2 +- ...ts-block-replies-text-end-does-not.test.ts | 2 +- ...soning-as-separate-message-enabled.test.ts | 2 +- ...uppresses-output-without-start-tag.test.ts | 2 +- ...g-single-line-fenced-blocks-reopen.test.ts | 2 +- ...session.subscribeembeddedpisession.test.ts | 2 +- ...suppresses-commentary-phase-output.test.ts | 2 +- ...age-end-block-replies-message-tool.test.ts | 2 +- ...mbedded-subscribe.tool-text-diagnostics.ts | 2 +- src/agents/pi-embedded-subscribe.ts | 2 +- src/agents/pi-embedded-subscribe.types.ts | 2 +- src/agents/pi-embedded-utils.test.ts | 2 +- src/agents/pi-embedded-utils.ts | 4 +- .../pi-hooks/compaction-safeguard-runtime.ts | 2 +- .../pi-hooks/compaction-safeguard.test.ts | 6 +- src/agents/pi-hooks/compaction-safeguard.ts | 8 +- src/agents/pi-hooks/context-pruning.test.ts | 6 +- .../pi-hooks/context-pruning/extension.ts | 2 +- .../pi-hooks/context-pruning/pruner.test.ts | 4 +- src/agents/pi-hooks/context-pruning/pruner.ts | 6 +- src/agents/pi-mcp-style.cache.live.test.ts | 2 +- .../pi-model-discovery.compat.e2e.test.ts | 4 +- src/agents/pi-model-discovery.ts | 6 +- src/agents/pi-project-settings-snapshot.ts | 2 +- src/agents/pi-project-settings.ts | 2 +- ...adapter.after-tool-call.fires-once.test.ts | 2 +- ...definition-adapter.after-tool-call.test.ts | 2 +- ...pi-tool-definition-adapter.logging.test.ts | 2 +- src/agents/pi-tool-definition-adapter.test.ts | 2 +- src/agents/pi-tool-definition-adapter.ts | 4 +- ...aliases-schemas-without-dropping-g.test.ts | 2 +- src/agents/pi-tools.host-edit.ts | 2 +- .../pi-tools.read.host-edit-access.test.ts | 6 +- ...pi-tools.read.host-tilde-expansion.test.ts | 6 +- src/agents/pi-tools.read.ts | 4 +- src/agents/pi-tools.safe-bins.test.ts | 2 +- src/agents/pi-tools.schema.test.ts | 4 +- src/agents/pi-tools.ts | 2 +- .../pi-tools.workspace-only-false.test.ts | 12 +- src/agents/plugin-text-transforms.test.ts | 4 +- src/agents/plugin-text-transforms.ts | 4 +- src/agents/provider-local-service.test.ts | 2 +- src/agents/provider-local-service.ts | 2 +- src/agents/provider-request-config.ts | 2 +- src/agents/provider-stream.ts | 4 +- src/agents/provider-transport-fetch.test.ts | 2 +- src/agents/provider-transport-fetch.ts | 2 +- src/agents/provider-transport-stream.test.ts | 2 +- src/agents/provider-transport-stream.ts | 4 +- src/agents/runtime-plan/build.ts | 2 +- src/agents/runtime-plan/tools.test.ts | 2 +- src/agents/runtime-plan/tools.ts | 2 +- src/agents/runtime-plan/types.ts | 2 +- ...ema-normalization-runtime-contract.test.ts | 2 +- src/agents/session-raw-append-message.ts | 2 +- .../session-tool-result-guard-wrapper.ts | 6 +- src/agents/session-tool-result-guard.test.ts | 4 +- ...ult-guard.tool-result-persist-hook.test.ts | 4 +- ...ool-result-guard.transcript-events.test.ts | 4 +- src/agents/session-tool-result-guard.ts | 4 +- ...sion-transcript-repair.attachments.test.ts | 2 +- src/agents/session-transcript-repair.test.ts | 2 +- src/agents/session-transcript-repair.ts | 2 +- src/agents/simple-completion-runtime.test.ts | 4 +- src/agents/simple-completion-runtime.ts | 2 +- .../simple-completion-transport.test.ts | 2 +- src/agents/simple-completion-transport.ts | 2 +- src/agents/skills/compact-format.test.ts | 2 +- src/agents/skills/skill-contract.ts | 2 +- src/agents/stream-message-shared.ts | 2 +- src/agents/subagent-spawn.workspace.test.ts | 6 +- src/agents/system-prompt-report.ts | 2 +- .../test-helpers/agent-message-fixtures.ts | 4 +- .../assistant-message-fixtures.ts | 2 +- .../pi-coding-agent-token-mock.ts | 6 +- .../pi-embedded-runner-e2e-fixtures.ts | 2 +- src/agents/test-helpers/pi-tool-stubs.ts | 2 +- src/agents/test-helpers/usage-fixtures.ts | 2 +- src/agents/tool-call-id.test.ts | 2 +- src/agents/tool-call-id.ts | 2 +- src/agents/tool-images.ts | 4 +- src/agents/tool-replay-repair.live.test.ts | 6 +- src/agents/tool-search.ts | 4 +- src/agents/tools/common.ts | 2 +- src/agents/tools/image-tool.helpers.ts | 2 +- src/agents/tools/media-tool-shared.ts | 2 +- src/agents/tools/nodes-tool-media.ts | 2 +- src/agents/tools/pdf-tool.helpers.ts | 2 +- src/agents/tools/pdf-tool.test.ts | 5 +- src/agents/tools/pdf-tool.ts | 2 +- .../transport-message-transform.test.ts | 2 +- src/agents/transport-message-transform.ts | 2 +- .../transport-params-runtime-contract.test.ts | 4 +- src/agents/transport-stream-shared.ts | 2 +- src/agents/xai.live.test.ts | 2 +- src/agents/zai.live.test.ts | 2 +- src/auto-reply/get-reply-options.types.ts | 2 +- src/auto-reply/handoff-summarizer.ts | 2 +- src/auto-reply/reply/agent-runner-memory.ts | 2 +- .../reply/commands-export-session.ts | 2 +- .../reply/commands-system-prompt.ts | 2 +- .../conversation-label-generator.test.ts | 4 +- .../reply/conversation-label-generator.ts | 2 +- src/auto-reply/reply/session-fork.runtime.ts | 2 +- .../reply/session-transcript-replay.ts | 2 +- .../plugins/message-action-dispatch.ts | 2 +- src/channels/plugins/types.core.ts | 2 +- src/cli/skills-cli.test.ts | 2 +- src/commands/chutes-oauth.ts | 2 +- src/commands/models/list.list-command.ts | 4 +- src/commands/models/list.provider-catalog.ts | 2 +- src/commands/models/list.registry-load.ts | 4 +- src/commands/models/list.registry.ts | 4 +- src/commands/models/list.row-sources.ts | 2 +- src/commands/models/list.rows.ts | 4 +- src/commands/models/scan.ts | 2 +- src/commands/onboard-auth.test.ts | 2 +- src/config/sessions/transcript-append.ts | 4 +- src/config/sessions/transcript.ts | 10 +- src/config/sessions/types.ts | 2 +- src/config/types.models.ts | 2 +- src/context-engine/context-engine.test.ts | 2 +- src/context-engine/legacy.ts | 2 +- src/context-engine/types.ts | 2 +- .../gateway-models.profiles.live.test.ts | 2 +- .../server-methods/chat-transcript-inject.ts | 2 +- .../chat.abort-persistence.test.ts | 2 +- .../chat.directive-tags.test.ts | 2 +- .../server-methods/chat.test-helpers.ts | 2 +- src/gateway/server-methods/chat.ts | 4 +- src/gateway/server-methods/sessions.ts | 2 +- .../session-compaction-checkpoints.test.ts | 4 +- src/gateway/session-compaction-checkpoints.ts | 2 +- src/gateway/session-reset-service.ts | 2 +- src/gateway/session-utils.fs.test.ts | 2 +- src/gateway/sessions-history-http.test.ts | 2 +- .../test/server-sessions.test-helpers.ts | 6 +- src/infra/outbound/message-action-runner.ts | 2 +- src/infra/outbound/outbound-send-service.ts | 2 +- src/media-understanding/image.test.ts | 5 +- src/media-understanding/image.ts | 4 +- src/plugin-sdk/agent-harness-runtime.ts | 2 +- src/plugin-sdk/provider-stream-shared.test.ts | 2 +- src/plugin-sdk/provider-stream-shared.ts | 4 +- src/plugin-sdk/provider-stream.test.ts | 2 +- .../openclaw-owned-tool-runtime-contract.ts | 2 +- .../transcript-repair-runtime-contract.ts | 2 +- .../test-helpers/provider-runtime-contract.ts | 4 +- src/plugin-sdk/test-helpers/stream-hooks.ts | 2 +- .../agent-tool-result-middleware-types.ts | 2 +- .../codex-app-server-extension-types.ts | 2 +- src/plugins/contracts/tts-contract-suites.ts | 10 +- src/plugins/hook-types.ts | 2 +- src/plugins/hooks.sync-only.test.ts | 2 +- src/plugins/host-hook-turn-types.ts | 2 +- src/plugins/pi-package-graph.test.ts | 8 +- src/plugins/provider-auth-helpers.ts | 2 +- src/plugins/provider-model-compat.ts | 2 +- src/plugins/provider-model-helpers.test.ts | 2 +- .../provider-openai-codex-oauth.test.ts | 6 +- src/plugins/provider-openai-codex-oauth.ts | 2 +- src/plugins/provider-replay-helpers.ts | 2 +- src/plugins/provider-runtime-model.types.ts | 2 +- src/plugins/provider-runtime.test.ts | 2 +- src/plugins/runtime/runtime-llm.runtime.ts | 2 +- .../runtime/runtime-model-auth.runtime.ts | 2 +- .../runtime/runtime-web-channel-plugin.ts | 2 +- src/plugins/runtime/types-core.ts | 4 +- src/plugins/types.ts | 6 +- src/sessions/input-provenance.ts | 2 +- src/shared/google-turn-ordering.ts | 2 +- src/trajectory/export.test.ts | 2 +- src/trajectory/export.ts | 4 +- src/tts/tts-core.ts | 2 +- src/tui/commands.ts | 2 +- src/tui/components/assistant-message.ts | 2 +- src/tui/components/btw-inline-message.ts | 2 +- src/tui/components/chat-log.ts | 4 +- src/tui/components/custom-editor.test.ts | 2 +- src/tui/components/custom-editor.ts | 2 +- src/tui/components/filterable-select-list.ts | 4 +- src/tui/components/hyperlink-markdown.ts | 4 +- src/tui/components/markdown-message.ts | 2 +- src/tui/components/searchable-select-list.ts | 2 +- src/tui/components/selectors.ts | 2 +- src/tui/components/tool-execution.ts | 2 +- src/tui/theme/theme.ts | 2 +- src/tui/tui-command-handlers.ts | 2 +- src/tui/tui-local-shell.ts | 2 +- src/tui/tui-overlays.test.ts | 2 +- src/tui/tui-overlays.ts | 2 +- src/tui/tui-session-actions.test.ts | 8 +- src/tui/tui-session-actions.ts | 2 +- src/tui/tui.ts | 2 +- src/types/pi-agent-core.d.ts | 4 +- src/types/pi-coding-agent.d.ts | 2 +- .../agents/happy-path-prompt-snapshots.ts | 2 +- .../scripts/blacksmith-testbox-runner.test.ts | 160 --- test/scripts/blacksmith-testbox-state.test.ts | 119 --- test/scripts/changed-lanes.test.ts | 39 +- test/scripts/testbox-sync-sanity.test.ts | 76 -- test/setup.shared.ts | 2 +- 531 files changed, 1096 insertions(+), 2487 deletions(-) delete mode 100644 scripts/blacksmith-testbox-runner.mjs delete mode 100644 scripts/blacksmith-testbox-state.mjs delete mode 100644 scripts/testbox-sync-sanity.mjs delete mode 100644 test/scripts/blacksmith-testbox-runner.test.ts delete mode 100644 test/scripts/blacksmith-testbox-state.test.ts delete mode 100644 test/scripts/testbox-sync-sanity.test.ts diff --git a/.agents/skills/crabbox/SKILL.md b/.agents/skills/crabbox/SKILL.md index 5a7541d78a6..a0c68f29672 100644 --- a/.agents/skills/crabbox/SKILL.md +++ b/.agents/skills/crabbox/SKILL.md @@ -294,18 +294,19 @@ Common Crabbox-only failures: report the capacity blocker. If Crabbox cannot dispatch, sync, attach, or stop but Blacksmith itself works, -use direct Blacksmith from the repo root: +first try the same command through the repo wrapper with `--debug` and +`--timing-json`: ```sh -blacksmith testbox warmup ci-check-testbox.yml --ref main --idle-timeout 90 -blacksmith testbox run --id "env CI=1 NODE_OPTIONS=--max-old-space-size=4096 OPENCLAW_TEST_PROJECTS_PARALLEL=6 OPENCLAW_VITEST_MAX_WORKERS=1 OPENCLAW_VITEST_NO_OUTPUT_TIMEOUT_MS=900000 pnpm test:changed" -blacksmith testbox stop --id +pnpm crabbox:run -- --provider blacksmith-testbox --debug --timing-json -- \ + CI=1 NODE_OPTIONS=--max-old-space-size=4096 OPENCLAW_TEST_PROJECTS_PARALLEL=6 OPENCLAW_VITEST_MAX_WORKERS=1 OPENCLAW_VITEST_NO_OUTPUT_TIMEOUT_MS=900000 pnpm test:changed ``` -Direct full suite: +Full suite: ```sh -blacksmith testbox run --id "env CI=1 NODE_OPTIONS=--max-old-space-size=4096 OPENCLAW_TEST_PROJECTS_PARALLEL=6 OPENCLAW_VITEST_MAX_WORKERS=1 OPENCLAW_VITEST_NO_OUTPUT_TIMEOUT_MS=900000 pnpm test" +pnpm crabbox:run -- --provider blacksmith-testbox --debug --timing-json -- \ + CI=1 NODE_OPTIONS=--max-old-space-size=4096 OPENCLAW_TEST_PROJECTS_PARALLEL=6 OPENCLAW_VITEST_MAX_WORKERS=1 OPENCLAW_VITEST_NO_OUTPUT_TIMEOUT_MS=900000 pnpm test ``` Auth fallback, only when `blacksmith` says auth is missing: @@ -340,16 +341,15 @@ The hydration workflow owns checkout, Node/pnpm setup, dependency install, secrets, ready marker, and keepalive. Crabbox owns dispatch, sync, SSH command execution, timing, logs/results, and cleanup. -Minimal direct Blacksmith fallback, from repo root: +Minimal Blacksmith-backed Crabbox run, from repo root: ```sh -blacksmith testbox warmup ci-check-testbox.yml --ref main --idle-timeout 90 -blacksmith testbox run --id "env CI=1 NODE_OPTIONS=--max-old-space-size=4096 OPENCLAW_TEST_PROJECTS_PARALLEL=6 OPENCLAW_VITEST_MAX_WORKERS=1 pnpm test:changed" -blacksmith testbox stop --id +pnpm crabbox:run -- --provider blacksmith-testbox --timing-json -- \ + CI=1 NODE_OPTIONS=--max-old-space-size=4096 OPENCLAW_TEST_PROJECTS_PARALLEL=6 OPENCLAW_VITEST_MAX_WORKERS=1 pnpm test:changed ``` -Use direct Blacksmith only when Crabbox is the broken layer and Blacksmith -itself still works. Prefer direct `blacksmith testbox list` for cleanup +Use direct Blacksmith only when Crabbox is the broken layer and you are +isolating a Crabbox bug. Prefer direct `blacksmith testbox list` for cleanup diagnostics, not as a reusable work queue. Important Blacksmith footguns: diff --git a/.agents/skills/openclaw-test-performance/SKILL.md b/.agents/skills/openclaw-test-performance/SKILL.md index e50e5027774..6bf76abaae5 100644 --- a/.agents/skills/openclaw-test-performance/SKILL.md +++ b/.agents/skills/openclaw-test-performance/SKILL.md @@ -92,11 +92,11 @@ barrels, package-boundary tests, or extension suites. - runtime capture should be quiet and config-tolerant. - command output should include wall time, exit code, and peak RSS when available. -4. For broad or package-heavy plugin proof, use Blacksmith Testbox by default on - maintainer machines. Warm once and reuse the same box: - - `blacksmith testbox warmup ci-check-testbox.yml --ref main --idle-timeout 90` - - `blacksmith testbox run --id "OPENCLAW_TESTBOX=1 pnpm test:extensions:batch "` - - stop the box when done. +4. For broad or package-heavy plugin proof, use Crabbox-backed Blacksmith + Testbox by default on maintainer machines: + - `pnpm crabbox:run -- --provider blacksmith-testbox --timing-json -- OPENCLAW_TESTBOX=1 pnpm test:extensions:batch ` + - add `--keep`/`--id ` only when several commands must share one + warmed box; stop it with `pnpm crabbox:stop -- `. 5. If plugin performance is package-artifact sensitive, switch to `openclaw-pre-release-plugin-testing` and Package Acceptance rather than trusting source-only timing. diff --git a/.agents/skills/openclaw-testing/SKILL.md b/.agents/skills/openclaw-testing/SKILL.md index 98b069744ab..c120884c2e0 100644 --- a/.agents/skills/openclaw-testing/SKILL.md +++ b/.agents/skills/openclaw-testing/SKILL.md @@ -36,14 +36,11 @@ Prove the touched surface first. Do not reflexively run the whole suite. - Prefer GitHub Actions for release/Docker proof when the workflow already has the prepared image and secrets. - Use `scripts/committer "" ` when committing; stage only your files. - If deps are missing, run `pnpm install`, retry once, then report the first actionable error. -- For Blacksmith Testbox proof, reuse only an id warmed and claimed in this - operator session. `blacksmith testbox list` is diagnostics only; a listed id - can have a local key and still carry stale rsync state from another lane. - After warmup, run `pnpm testbox:claim --id `, then prefer - `pnpm testbox:run --id -- ""` for OpenClaw gates so stale - org-visible ids fail fast before syncing. Claims older than 12 hours are - stale unless `OPENCLAW_TESTBOX_CLAIM_TTL_MINUTES` is explicitly set for long - work. +- For Blacksmith Testbox proof, use Crabbox first. `pnpm crabbox:run -- --provider +blacksmith-testbox --timing-json -- ` warms, claims, syncs, runs, + reports, and cleans up one-shot boxes. Reuse only an id/slug created in this + operator session; `blacksmith testbox list` is diagnostics only, not a shared + work queue. ## Local Test Shortcuts diff --git a/CHANGELOG.md b/CHANGELOG.md index 4cd7e1d62da..34087d86c28 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,8 @@ Docs: https://docs.openclaw.ai - Gateway/skills: add an opt-in private skill archive upload install path gated by `skills.install.allowUploadedArchives`, so trusted Gateway clients can stage and install zip-backed skills only when operators explicitly enable the code-install surface. (#74430) Thanks @samzong. - Codex app-server: enable Codex native code-mode-only for harness threads so deferred OpenClaw dynamic tools run through Codex's own searchable code execution surface instead of a PI-style wrapper. - Dependencies: refresh workspace pins and patch targets, including ACPX `@agentclientprotocol/claude-agent-acp` `0.33.1`, Codex ACP `0.14.0`, Baileys `7.0.0-rc10`, Google GenAI `2.0.1`, OpenAI `6.37.0`, AWS SDK `3.1045.0`, Kysely `0.29.0`, Tlon skill `0.3.6`, Aimock `1.19.5`, and tsdown `0.22.0`. +- Dependencies: move embedded Pi packages to the `@earendil-works` namespace, refresh Twitch Twurple packages, and move `@openclaw/fs-safe` from the GitHub release pin to the published npm package. +- Build: route Testbox changed-check delegation through Crabbox and remove the OpenClaw-specific Blacksmith Testbox helper scripts. - Agents/compaction: preserve scoped background exec/process session references across embedded compaction and after-turn runtime contexts without exposing sessions from unrelated scopes. Fixes #79284. (#79307) Thanks @TurboTheTurtle. - Agents/process: tell agents to inspect background sessions with `process log` before sending interactive input and to use `waitingForInput`/`stdinWritable` hints from `log`/`poll`. - CLI/onboarding: improve setup, onboarding, configure, and channel command wayfinding so terminal flows explain the next useful command instead of relying on terse setup labels. diff --git a/apps/macos/Sources/OpenClaw/ModelCatalogLoader.swift b/apps/macos/Sources/OpenClaw/ModelCatalogLoader.swift index 96543c2423d..b1fd70fd171 100644 --- a/apps/macos/Sources/OpenClaw/ModelCatalogLoader.swift +++ b/apps/macos/Sources/OpenClaw/ModelCatalogLoader.swift @@ -99,7 +99,7 @@ enum ModelCatalogLoader { ] for root in roots { let candidate = root - .appendingPathComponent("node_modules/@mariozechner/pi-ai/dist/models.generated.js") + .appendingPathComponent("node_modules/@earendil-works/pi-ai/dist/models.generated.js") if FileManager().isReadableFile(atPath: candidate.path) { return candidate.path } diff --git a/docs/ci.md b/docs/ci.md index bb189dc7295..4962c3075d1 100644 --- a/docs/ci.md +++ b/docs/ci.md @@ -493,13 +493,23 @@ Local changed-test routing lives in `scripts/test-projects.test-support.mjs` and ## Testbox validation -Run Testbox from the repo root and prefer a fresh warmed box for broad proof. Before spending a slow gate on a box that was reused, expired, or just reported an unexpectedly large sync, run `pnpm testbox:sanity` inside the box first. +Crabbox is the repo-owned remote-box wrapper for maintainer Linux proof. Use it +from the repo root when a check is too broad for a local edit loop, when CI +parity matters, or when the proof needs secrets, Docker, package lanes, +reusable boxes, or remote logs. The normal OpenClaw backend is +`blacksmith-testbox`; owned AWS/Hetzner capacity is a fallback for Blacksmith +outages, quota issues, or explicit owned-capacity testing. -The sanity check fails fast when required root files such as `pnpm-lock.yaml` disappeared or when `git status --short` shows at least 200 tracked deletions. That usually means the remote sync state is not a trustworthy copy of the PR; stop that box and warm a fresh one instead of debugging the product test failure. For intentional large-deletion PRs, set `OPENCLAW_TESTBOX_ALLOW_MASS_DELETIONS=1` for that sanity run. +Crabbox-backed Blacksmith runs warm, claim, sync, run, report, and clean up +one-shot Testboxes. The built-in sync sanity check fails fast when required +root files such as `pnpm-lock.yaml` disappear or when `git status --short` +shows at least 200 tracked deletions. For intentional large-deletion PRs, set +`OPENCLAW_TESTBOX_ALLOW_MASS_DELETIONS=1` for the remote command. -`pnpm testbox:run` also terminates a local Blacksmith CLI invocation that stays in the sync phase for more than five minutes without post-sync output. Set `OPENCLAW_TESTBOX_SYNC_TIMEOUT_MS=0` to disable that guard, or use a larger millisecond value for unusually large local diffs. - -Crabbox is the repo-owned remote-box wrapper for maintainer Linux proof. Use it when a check is too broad for a local edit loop, when CI parity matters, or when the proof needs secrets, Docker, package lanes, reusable boxes, or remote logs. The normal OpenClaw backend is `blacksmith-testbox`; owned AWS/Hetzner capacity is a fallback for Blacksmith outages, quota issues, or explicit owned-capacity testing. +Crabbox also terminates a local Blacksmith CLI invocation that stays in the +sync phase for more than five minutes without post-sync output. Set +`CRABBOX_BLACKSMITH_SYNC_TIMEOUT_MS=0` to disable that guard, or use a larger +millisecond value for unusually large local diffs. Before a first run, check the wrapper from the repo root: @@ -569,13 +579,9 @@ pnpm crabbox:run -- --provider blacksmith-testbox --id --no-sync --timi pnpm crabbox:stop -- ``` -If Crabbox is the broken layer but Blacksmith itself works, use direct Blacksmith as a narrow fallback: - -```bash -blacksmith testbox warmup ci-check-testbox.yml --ref main --idle-timeout 90 -blacksmith testbox run --id "env CI=1 NODE_OPTIONS=--max-old-space-size=4096 OPENCLAW_TEST_PROJECTS_PARALLEL=6 OPENCLAW_VITEST_MAX_WORKERS=1 OPENCLAW_VITEST_NO_OUTPUT_TIMEOUT_MS=900000 pnpm check:changed" -blacksmith testbox stop --id -``` +If Crabbox is the broken layer but Blacksmith itself works, use direct +Blacksmith only for diagnostics such as `list`, `status`, and cleanup. Fix the +Crabbox path before treating a direct Blacksmith run as maintainer proof. If `blacksmith testbox list --all` and `blacksmith testbox status` work but new warmups sit `queued` with no IP or Actions run URL after a couple of minutes, diff --git a/docs/concepts/oauth.md b/docs/concepts/oauth.md index 3f48dbb0d83..d4a63d651ee 100644 --- a/docs/concepts/oauth.md +++ b/docs/concepts/oauth.md @@ -105,7 +105,7 @@ Claude login on the host, onboarding/configure can reuse it directly. ## OAuth exchange (how login works) -OpenClaw's interactive login flows are implemented in `@mariozechner/pi-ai` and wired into the wizards/commands. +OpenClaw's interactive login flows are implemented in `@earendil-works/pi-ai` and wired into the wizards/commands. ### Anthropic setup-token diff --git a/docs/gateway/doctor.md b/docs/gateway/doctor.md index 9b6354e0f6b..78d1df36dc1 100644 --- a/docs/gateway/doctor.md +++ b/docs/gateway/doctor.md @@ -232,7 +232,7 @@ That stages grounded durable candidates into the short-term dreaming store while - If you've added `models.providers.opencode`, `opencode-zen`, or `opencode-go` manually, it overrides the built-in OpenCode catalog from `@mariozechner/pi-ai`. That can force models onto the wrong API or zero out costs. Doctor warns so you can remove the override and restore per-model API routing + costs. + If you've added `models.providers.opencode`, `opencode-zen`, or `opencode-go` manually, it overrides the built-in OpenCode catalog from `@earendil-works/pi-ai`. That can force models onto the wrong API or zero out costs. Doctor warns so you can remove the override and restore per-model API routing + costs. If your browser config still points at the removed Chrome extension path, doctor normalizes it to the current host-local Chrome MCP attach model: diff --git a/docs/pi.md b/docs/pi.md index c6389dc5f6d..630487a4fb7 100644 --- a/docs/pi.md +++ b/docs/pi.md @@ -23,10 +23,10 @@ OpenClaw uses the pi SDK to embed an AI coding agent into its messaging gateway ```json { - "@mariozechner/pi-agent-core": "0.73.0", - "@mariozechner/pi-ai": "0.73.0", - "@mariozechner/pi-coding-agent": "0.73.0", - "@mariozechner/pi-tui": "0.73.0" + "@earendil-works/pi-agent-core": "0.74.0", + "@earendil-works/pi-ai": "0.74.0", + "@earendil-works/pi-coding-agent": "0.74.0", + "@earendil-works/pi-tui": "0.74.0" } ``` @@ -171,7 +171,7 @@ import { DefaultResourceLoader, SessionManager, SettingsManager, -} from "@mariozechner/pi-coding-agent"; +} from "@earendil-works/pi-coding-agent"; const resourceLoader = new DefaultResourceLoader({ cwd: resolvedWorkspace, @@ -518,7 +518,7 @@ OpenClaw also has a local TUI mode that uses pi-tui components directly: ```typescript // src/tui/tui.ts -import { ... } from "@mariozechner/pi-tui"; +import { ... } from "@earendil-works/pi-tui"; ``` This provides the interactive terminal experience similar to pi's native mode. diff --git a/docs/plugins/compatibility.md b/docs/plugins/compatibility.md index e2b50c6d1eb..6218a68357e 100644 --- a/docs/plugins/compatibility.md +++ b/docs/plugins/compatibility.md @@ -69,16 +69,14 @@ not publish the inspector binary from the main `openclaw` package. ### Maintainer acceptance lane -Use Blacksmith Testbox for the installable-package acceptance lane when validating -the external inspector against OpenClaw plugin packages. Run it from a clean -OpenClaw checkout after the package is built: +Use Crabbox-backed Blacksmith Testbox for the installable-package acceptance +lane when validating the external inspector against OpenClaw plugin packages. +Run it from a clean OpenClaw checkout after the package is built: ```sh -blacksmith testbox warmup ci-check-testbox.yml --ref main --idle-timeout 90 -blacksmith testbox run --id "pnpm install && pnpm build && npm exec --yes @openclaw/plugin-inspector@0.1.0 -- ./extensions/telegram --json" -blacksmith testbox run --id "npm exec --yes @openclaw/plugin-inspector@0.1.0 -- ./extensions/discord --json" -blacksmith testbox run --id "npm exec --yes @openclaw/plugin-inspector@0.1.0 -- --json" -blacksmith testbox stop +pnpm crabbox:run -- --provider blacksmith-testbox --timing-json --shell -- "pnpm install && pnpm build && npm exec --yes @openclaw/plugin-inspector@0.1.0 -- ./extensions/telegram --json" +pnpm crabbox:run -- --provider blacksmith-testbox --timing-json --shell -- "npm exec --yes @openclaw/plugin-inspector@0.1.0 -- ./extensions/discord --json" +pnpm crabbox:run -- --provider blacksmith-testbox --timing-json --shell -- "npm exec --yes @openclaw/plugin-inspector@0.1.0 -- --json" ``` Keep this lane opt-in for maintainers because it installs an external npm diff --git a/docs/reference/session-management-compaction.md b/docs/reference/session-management-compaction.md index 587aa4a93cc..1c93553cf2b 100644 --- a/docs/reference/session-management-compaction.md +++ b/docs/reference/session-management-compaction.md @@ -200,7 +200,7 @@ The store is safe to edit, but the Gateway is the authority: it may rewrite or r ## Transcript structure (`*.jsonl`) -Transcripts are managed by `@mariozechner/pi-coding-agent`'s `SessionManager`. +Transcripts are managed by `@earendil-works/pi-coding-agent`'s `SessionManager`. The file is JSONL: diff --git a/extensions/amazon-bedrock-mantle/mantle-anthropic.runtime.test.ts b/extensions/amazon-bedrock-mantle/mantle-anthropic.runtime.test.ts index 40f48044ec8..4810b026d4c 100644 --- a/extensions/amazon-bedrock-mantle/mantle-anthropic.runtime.test.ts +++ b/extensions/amazon-bedrock-mantle/mantle-anthropic.runtime.test.ts @@ -1,4 +1,4 @@ -import type { Api, Model } from "@mariozechner/pi-ai"; +import type { Api, Model } from "@earendil-works/pi-ai"; import { describe, expect, it, vi } from "vitest"; import { createMantleAnthropicStreamFn, diff --git a/extensions/amazon-bedrock-mantle/mantle-anthropic.runtime.ts b/extensions/amazon-bedrock-mantle/mantle-anthropic.runtime.ts index f381131b251..fc399487496 100644 --- a/extensions/amazon-bedrock-mantle/mantle-anthropic.runtime.ts +++ b/extensions/amazon-bedrock-mantle/mantle-anthropic.runtime.ts @@ -1,7 +1,7 @@ import Anthropic from "@anthropic-ai/sdk"; -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import type { Api, Model, SimpleStreamOptions } from "@mariozechner/pi-ai"; -import { streamAnthropic } from "@mariozechner/pi-ai/anthropic"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import type { Api, Model, SimpleStreamOptions } from "@earendil-works/pi-ai"; +import { streamAnthropic } from "@earendil-works/pi-ai/anthropic"; const MANTLE_ANTHROPIC_BETA = "fine-grained-tool-streaming-2025-05-14"; type AnthropicOptions = ConstructorParameters[0]; diff --git a/extensions/amazon-bedrock-mantle/package.json b/extensions/amazon-bedrock-mantle/package.json index b7b1c4485f1..5450d0f9651 100644 --- a/extensions/amazon-bedrock-mantle/package.json +++ b/extensions/amazon-bedrock-mantle/package.json @@ -7,7 +7,7 @@ "dependencies": { "@anthropic-ai/sdk": "0.95.1", "@aws/bedrock-token-generator": "^1.1.0", - "@mariozechner/pi-ai": "0.73.1" + "@earendil-works/pi-ai": "0.74.0" }, "devDependencies": { "@openclaw/plugin-sdk": "workspace:*" diff --git a/extensions/amazon-bedrock/package.json b/extensions/amazon-bedrock/package.json index 828db5aaa14..a1132e04b3b 100644 --- a/extensions/amazon-bedrock/package.json +++ b/extensions/amazon-bedrock/package.json @@ -8,7 +8,7 @@ "@aws-sdk/client-bedrock": "3.1045.0", "@aws-sdk/client-bedrock-runtime": "3.1045.0", "@aws-sdk/credential-provider-node": "3.972.39", - "@mariozechner/pi-ai": "0.73.1", + "@earendil-works/pi-ai": "0.74.0", "@smithy/shared-ini-file-loader": "4.4.9" }, "devDependencies": { diff --git a/extensions/amazon-bedrock/register.sync.runtime.ts b/extensions/amazon-bedrock/register.sync.runtime.ts index eb1b7d60b0d..9067c0937b8 100644 --- a/extensions/amazon-bedrock/register.sync.runtime.ts +++ b/extensions/amazon-bedrock/register.sync.runtime.ts @@ -1,5 +1,5 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import { streamSimple } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import { streamSimple } from "@earendil-works/pi-ai"; import type { OpenClawConfig } from "openclaw/plugin-sdk/config-contracts"; import { resolvePluginConfigObject } from "openclaw/plugin-sdk/plugin-config-runtime"; import type { OpenClawPluginApi } from "openclaw/plugin-sdk/plugin-entry"; @@ -122,7 +122,7 @@ function createGuardrailWrapStreamFn( /** * Mirrors the shipped pi-ai Bedrock `supportsPromptCaching` matcher. - * Keep this in sync with node_modules/@mariozechner/pi-ai/dist/providers/amazon-bedrock.js. + * Keep this in sync with node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.js. */ function matchesPiAiPromptCachingModelId(modelId: string): boolean { const id = modelId.toLowerCase(); diff --git a/extensions/anthropic-vertex/api.test.ts b/extensions/anthropic-vertex/api.test.ts index e276dd8ef49..9cf29664a40 100644 --- a/extensions/anthropic-vertex/api.test.ts +++ b/extensions/anthropic-vertex/api.test.ts @@ -1,4 +1,4 @@ -import { createAssistantMessageEventStream, type Model } from "@mariozechner/pi-ai"; +import { createAssistantMessageEventStream, type Model } from "@earendil-works/pi-ai"; import { beforeAll, describe, expect, it, vi } from "vitest"; import type { AnthropicVertexStreamDeps } from "./stream-runtime.js"; diff --git a/extensions/anthropic-vertex/api.ts b/extensions/anthropic-vertex/api.ts index 35f639e5462..3696d7a8a1c 100644 --- a/extensions/anthropic-vertex/api.ts +++ b/extensions/anthropic-vertex/api.ts @@ -1,4 +1,4 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; import type { AnthropicVertexStreamDeps } from "./stream-runtime.js"; export { diff --git a/extensions/anthropic-vertex/package.json b/extensions/anthropic-vertex/package.json index 6a746c7f89b..bd4e6fb1824 100644 --- a/extensions/anthropic-vertex/package.json +++ b/extensions/anthropic-vertex/package.json @@ -6,8 +6,8 @@ "type": "module", "dependencies": { "@anthropic-ai/vertex-sdk": "^0.16.0", - "@mariozechner/pi-agent-core": "0.73.1", - "@mariozechner/pi-ai": "0.73.1" + "@earendil-works/pi-agent-core": "0.74.0", + "@earendil-works/pi-ai": "0.74.0" }, "devDependencies": { "@openclaw/plugin-sdk": "workspace:*" diff --git a/extensions/anthropic-vertex/stream-runtime.test.ts b/extensions/anthropic-vertex/stream-runtime.test.ts index bcbcda146cd..d8e11a96f61 100644 --- a/extensions/anthropic-vertex/stream-runtime.test.ts +++ b/extensions/anthropic-vertex/stream-runtime.test.ts @@ -1,4 +1,4 @@ -import { createAssistantMessageEventStream, type Model } from "@mariozechner/pi-ai"; +import { createAssistantMessageEventStream, type Model } from "@earendil-works/pi-ai"; import { beforeAll, describe, expect, it, vi } from "vitest"; import type { AnthropicVertexStreamDeps } from "./stream-runtime.js"; diff --git a/extensions/anthropic-vertex/stream-runtime.ts b/extensions/anthropic-vertex/stream-runtime.ts index fb48634da20..be69a6a3266 100644 --- a/extensions/anthropic-vertex/stream-runtime.ts +++ b/extensions/anthropic-vertex/stream-runtime.ts @@ -1,10 +1,10 @@ import { AnthropicVertex as AnthropicVertexSdk } from "@anthropic-ai/vertex-sdk"; -import type { StreamFn } from "@mariozechner/pi-agent-core"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; import { streamAnthropic as streamAnthropicDefault, type AnthropicOptions, type Model, -} from "@mariozechner/pi-ai"; +} from "@earendil-works/pi-ai"; import { applyAnthropicPayloadPolicyToParams, resolveAnthropicPayloadPolicy, diff --git a/extensions/anthropic/package.json b/extensions/anthropic/package.json index 50c3eba2081..ce9050ff04e 100644 --- a/extensions/anthropic/package.json +++ b/extensions/anthropic/package.json @@ -5,7 +5,7 @@ "description": "OpenClaw Anthropic provider plugin", "type": "module", "dependencies": { - "@mariozechner/pi-ai": "0.73.1" + "@earendil-works/pi-ai": "0.74.0" }, "devDependencies": { "@openclaw/plugin-sdk": "workspace:*" diff --git a/extensions/anthropic/stream-wrappers.test.ts b/extensions/anthropic/stream-wrappers.test.ts index 0725bdb906c..8c213fd0fa1 100644 --- a/extensions/anthropic/stream-wrappers.test.ts +++ b/extensions/anthropic/stream-wrappers.test.ts @@ -1,4 +1,4 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; import { afterEach, describe, expect, it, vi } from "vitest"; import { __testing, diff --git a/extensions/anthropic/stream-wrappers.ts b/extensions/anthropic/stream-wrappers.ts index 0ebee385fd0..13f125d8d6b 100644 --- a/extensions/anthropic/stream-wrappers.ts +++ b/extensions/anthropic/stream-wrappers.ts @@ -1,5 +1,5 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import { streamSimple } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import { streamSimple } from "@earendil-works/pi-ai"; import type { ProviderWrapStreamFnContext } from "openclaw/plugin-sdk/plugin-entry"; import { applyAnthropicPayloadPolicyToParams, diff --git a/extensions/browser/src/browser-tool.actions.ts b/extensions/browser/src/browser-tool.actions.ts index 1471953b20b..dd4383c805d 100644 --- a/extensions/browser/src/browser-tool.actions.ts +++ b/extensions/browser/src/browser-tool.actions.ts @@ -1,4 +1,4 @@ -import type { AgentToolResult } from "@mariozechner/pi-agent-core"; +import type { AgentToolResult } from "@earendil-works/pi-agent-core"; import { DEFAULT_AI_SNAPSHOT_MAX_CHARS, browserAct, diff --git a/extensions/byteplus/live.test.ts b/extensions/byteplus/live.test.ts index 943a2f063a2..a081f1ccee4 100644 --- a/extensions/byteplus/live.test.ts +++ b/extensions/byteplus/live.test.ts @@ -1,4 +1,4 @@ -import { completeSimple, type Model } from "@mariozechner/pi-ai"; +import { completeSimple, type Model } from "@earendil-works/pi-ai"; import { createSingleUserPromptMessage, extractNonEmptyAssistantText, diff --git a/extensions/chutes/oauth.ts b/extensions/chutes/oauth.ts index d84580c3d61..53248ad147e 100644 --- a/extensions/chutes/oauth.ts +++ b/extensions/chutes/oauth.ts @@ -1,5 +1,5 @@ import { randomBytes } from "node:crypto"; -import type { OAuthCredentials } from "@mariozechner/pi-ai"; +import type { OAuthCredentials } from "@earendil-works/pi-ai"; import { generatePkceVerifierChallenge, toFormUrlEncoded } from "openclaw/plugin-sdk/provider-auth"; import { parseOAuthCallbackInput, diff --git a/extensions/cloudflare-ai-gateway/index.test.ts b/extensions/cloudflare-ai-gateway/index.test.ts index 2c7064b39f5..25b4451f271 100644 --- a/extensions/cloudflare-ai-gateway/index.test.ts +++ b/extensions/cloudflare-ai-gateway/index.test.ts @@ -1,4 +1,4 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; import { capturePluginRegistration } from "openclaw/plugin-sdk/plugin-test-runtime"; import { describe, expect, it } from "vitest"; import plugin from "./index.js"; diff --git a/extensions/cloudflare-ai-gateway/stream-wrappers.test.ts b/extensions/cloudflare-ai-gateway/stream-wrappers.test.ts index e96f8714fa2..0a918a207e6 100644 --- a/extensions/cloudflare-ai-gateway/stream-wrappers.test.ts +++ b/extensions/cloudflare-ai-gateway/stream-wrappers.test.ts @@ -1,4 +1,4 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; import { afterAll, beforeEach, describe, expect, it, vi } from "vitest"; import { __testing, diff --git a/extensions/cloudflare-ai-gateway/stream-wrappers.ts b/extensions/cloudflare-ai-gateway/stream-wrappers.ts index 9c0ed628276..8ec06f61d54 100644 --- a/extensions/cloudflare-ai-gateway/stream-wrappers.ts +++ b/extensions/cloudflare-ai-gateway/stream-wrappers.ts @@ -1,4 +1,4 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; import type { ProviderWrapStreamFnContext } from "openclaw/plugin-sdk/plugin-entry"; import { createAnthropicThinkingPrefillPayloadWrapper } from "openclaw/plugin-sdk/provider-stream-shared"; import { createSubsystemLogger } from "openclaw/plugin-sdk/runtime-env"; diff --git a/extensions/codex/package.json b/extensions/codex/package.json index ddc81ebc9fc..3e34229cc78 100644 --- a/extensions/codex/package.json +++ b/extensions/codex/package.json @@ -8,7 +8,7 @@ }, "type": "module", "dependencies": { - "@mariozechner/pi-coding-agent": "0.73.1", + "@earendil-works/pi-coding-agent": "0.74.0", "@openai/codex": "0.130.0", "ajv": "^8.20.0", "ws": "^8.20.0", diff --git a/extensions/codex/src/app-server/auth-bridge.test.ts b/extensions/codex/src/app-server/auth-bridge.test.ts index d32ccd920df..7fbf90cab64 100644 --- a/extensions/codex/src/app-server/auth-bridge.test.ts +++ b/extensions/codex/src/app-server/auth-bridge.test.ts @@ -38,7 +38,7 @@ const providerRuntimeMocks = vi.hoisted(() => ({ ), })); -vi.mock("@mariozechner/pi-ai/oauth", () => ({ +vi.mock("@earendil-works/pi-ai/oauth", () => ({ getOAuthApiKey: vi.fn(), getOAuthProviders: () => [], loginOpenAICodex: vi.fn(), diff --git a/extensions/codex/src/app-server/context-engine-projection.test.ts b/extensions/codex/src/app-server/context-engine-projection.test.ts index 2909d1a19d3..a52826b66d2 100644 --- a/extensions/codex/src/app-server/context-engine-projection.test.ts +++ b/extensions/codex/src/app-server/context-engine-projection.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 { projectContextEngineAssemblyForCodex } from "./context-engine-projection.js"; diff --git a/extensions/codex/src/app-server/delivery-no-reply-runtime-contract.test.ts b/extensions/codex/src/app-server/delivery-no-reply-runtime-contract.test.ts index 7b8c7d16061..af240d9ba80 100644 --- a/extensions/codex/src/app-server/delivery-no-reply-runtime-contract.test.ts +++ b/extensions/codex/src/app-server/delivery-no-reply-runtime-contract.test.ts @@ -1,7 +1,7 @@ import fs from "node:fs/promises"; import os from "node:os"; import path from "node:path"; -import { SessionManager } from "@mariozechner/pi-coding-agent"; +import { SessionManager } from "@earendil-works/pi-coding-agent"; import type { EmbeddedRunAttemptParams } from "openclaw/plugin-sdk/agent-harness"; import { DELIVERY_NO_REPLY_RUNTIME_CONTRACT } from "openclaw/plugin-sdk/agent-runtime-test-contracts"; import { isSilentReplyPayloadText } from "openclaw/plugin-sdk/reply-chunking"; diff --git a/extensions/codex/src/app-server/dynamic-tools.test.ts b/extensions/codex/src/app-server/dynamic-tools.test.ts index ad75c39c0e5..28205d882f8 100644 --- a/extensions/codex/src/app-server/dynamic-tools.test.ts +++ b/extensions/codex/src/app-server/dynamic-tools.test.ts @@ -1,4 +1,4 @@ -import type { AgentToolResult } from "@mariozechner/pi-agent-core"; +import type { AgentToolResult } from "@earendil-works/pi-agent-core"; import type { AnyAgentTool } from "openclaw/plugin-sdk/agent-harness"; import { HEARTBEAT_RESPONSE_TOOL_NAME, diff --git a/extensions/codex/src/app-server/dynamic-tools.ts b/extensions/codex/src/app-server/dynamic-tools.ts index 694d65fc39e..1c06d3faf35 100644 --- a/extensions/codex/src/app-server/dynamic-tools.ts +++ b/extensions/codex/src/app-server/dynamic-tools.ts @@ -1,5 +1,5 @@ -import type { AgentToolResult } from "@mariozechner/pi-agent-core"; -import type { ImageContent, TextContent } from "@mariozechner/pi-ai"; +import type { AgentToolResult } from "@earendil-works/pi-agent-core"; +import type { ImageContent, TextContent } from "@earendil-works/pi-ai"; import { createAgentToolResultMiddlewareRunner, createCodexAppServerToolResultExtensionRunner, diff --git a/extensions/codex/src/app-server/event-projector.test.ts b/extensions/codex/src/app-server/event-projector.test.ts index 8244314e336..7d6708e5b10 100644 --- a/extensions/codex/src/app-server/event-projector.test.ts +++ b/extensions/codex/src/app-server/event-projector.test.ts @@ -1,7 +1,7 @@ import fs from "node:fs/promises"; import os from "node:os"; import path from "node:path"; -import { SessionManager } from "@mariozechner/pi-coding-agent"; +import { SessionManager } from "@earendil-works/pi-coding-agent"; import type { EmbeddedRunAttemptParams } from "openclaw/plugin-sdk/agent-harness"; import { resetAgentEventsForTest } from "openclaw/plugin-sdk/agent-harness-runtime"; import { diff --git a/extensions/codex/src/app-server/event-projector.ts b/extensions/codex/src/app-server/event-projector.ts index 9653d8aaf71..6af018b9efe 100644 --- a/extensions/codex/src/app-server/event-projector.ts +++ b/extensions/codex/src/app-server/event-projector.ts @@ -1,4 +1,4 @@ -import type { AssistantMessage, Usage } from "@mariozechner/pi-ai"; +import type { AssistantMessage, Usage } from "@earendil-works/pi-ai"; import { classifyAgentHarnessTerminalOutcome, embeddedAgentLog, diff --git a/extensions/codex/src/app-server/outcome-fallback-runtime-contract.test.ts b/extensions/codex/src/app-server/outcome-fallback-runtime-contract.test.ts index 070e4b6784b..6a8b112937c 100644 --- a/extensions/codex/src/app-server/outcome-fallback-runtime-contract.test.ts +++ b/extensions/codex/src/app-server/outcome-fallback-runtime-contract.test.ts @@ -1,7 +1,7 @@ import fs from "node:fs/promises"; import os from "node:os"; import path from "node:path"; -import { SessionManager } from "@mariozechner/pi-coding-agent"; +import { SessionManager } from "@earendil-works/pi-coding-agent"; import type { EmbeddedRunAttemptParams } from "openclaw/plugin-sdk/agent-harness"; import { classifyEmbeddedPiRunResultForModelFallback } from "openclaw/plugin-sdk/agent-harness-runtime"; import { diff --git a/extensions/codex/src/app-server/run-attempt.context-engine.test.ts b/extensions/codex/src/app-server/run-attempt.context-engine.test.ts index 3e29696a38b..d5534f94fb3 100644 --- a/extensions/codex/src/app-server/run-attempt.context-engine.test.ts +++ b/extensions/codex/src/app-server/run-attempt.context-engine.test.ts @@ -1,8 +1,8 @@ import fs from "node:fs/promises"; import os from "node:os"; import path from "node:path"; -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import { SessionManager } from "@mariozechner/pi-coding-agent"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import { SessionManager } from "@earendil-works/pi-coding-agent"; import type { EmbeddedRunAttemptParams } from "openclaw/plugin-sdk/agent-harness"; import { embeddedAgentLog, diff --git a/extensions/codex/src/app-server/run-attempt.test.ts b/extensions/codex/src/app-server/run-attempt.test.ts index 065f3e2d97a..26459fb4e7d 100644 --- a/extensions/codex/src/app-server/run-attempt.test.ts +++ b/extensions/codex/src/app-server/run-attempt.test.ts @@ -1,7 +1,7 @@ import fs from "node:fs/promises"; import os from "node:os"; import path from "node:path"; -import { SessionManager } from "@mariozechner/pi-coding-agent"; +import { SessionManager } from "@earendil-works/pi-coding-agent"; import { abortAgentHarnessRun, embeddedAgentLog, diff --git a/extensions/codex/src/app-server/session-history.ts b/extensions/codex/src/app-server/session-history.ts index 69f9e741388..0937acaddcd 100644 --- a/extensions/codex/src/app-server/session-history.ts +++ b/extensions/codex/src/app-server/session-history.ts @@ -1,10 +1,10 @@ import fs from "node:fs/promises"; -import type { SessionEntry } from "@mariozechner/pi-coding-agent"; +import type { SessionEntry } from "@earendil-works/pi-coding-agent"; import { buildSessionContext, migrateSessionEntries, parseSessionEntries, -} from "@mariozechner/pi-coding-agent"; +} from "@earendil-works/pi-coding-agent"; import type { AgentMessage } from "openclaw/plugin-sdk/agent-harness-runtime"; function isMissingFileError(error: unknown): boolean { diff --git a/extensions/codex/src/app-server/test-support.ts b/extensions/codex/src/app-server/test-support.ts index 15c56445549..7f125866170 100644 --- a/extensions/codex/src/app-server/test-support.ts +++ b/extensions/codex/src/app-server/test-support.ts @@ -1,6 +1,6 @@ import { EventEmitter } from "node:events"; import { PassThrough, Writable } from "node:stream"; -import type { Api, Model } from "@mariozechner/pi-ai"; +import type { Api, Model } from "@earendil-works/pi-ai"; import { vi } from "vitest"; import { CodexAppServerClient } from "./client.js"; diff --git a/extensions/codex/src/manifest.test.ts b/extensions/codex/src/manifest.test.ts index caccbecd501..07e9117cdb5 100644 --- a/extensions/codex/src/manifest.test.ts +++ b/extensions/codex/src/manifest.test.ts @@ -12,7 +12,7 @@ describe("codex package manifest", () => { fs.readFileSync(new URL("../package.json", import.meta.url), "utf8"), ) as CodexPackageManifest; - expect(packageJson.dependencies).toHaveProperty("@mariozechner/pi-coding-agent"); + expect(packageJson.dependencies).toHaveProperty("@earendil-works/pi-coding-agent"); expect(packageJson.dependencies?.["@openai/codex"]).toBe( MANAGED_CODEX_APP_SERVER_PACKAGE_VERSION, ); diff --git a/extensions/deepseek/deepseek.live.test.ts b/extensions/deepseek/deepseek.live.test.ts index f68fe2b87b4..c25167a2154 100644 --- a/extensions/deepseek/deepseek.live.test.ts +++ b/extensions/deepseek/deepseek.live.test.ts @@ -5,7 +5,7 @@ import { type AssistantMessage, type Context, type Model, -} from "@mariozechner/pi-ai"; +} from "@earendil-works/pi-ai"; import { createSingleUserPromptMessage, extractNonEmptyAssistantText, diff --git a/extensions/deepseek/index.test.ts b/extensions/deepseek/index.test.ts index 888e06e1495..0ba8178bb05 100644 --- a/extensions/deepseek/index.test.ts +++ b/extensions/deepseek/index.test.ts @@ -1,5 +1,5 @@ -import type { Context, Model } from "@mariozechner/pi-ai"; -import { createAssistantMessageEventStream } from "@mariozechner/pi-ai"; +import type { Context, Model } from "@earendil-works/pi-ai"; +import { createAssistantMessageEventStream } from "@earendil-works/pi-ai"; import { registerSingleProviderPlugin, resolveProviderPluginChoice, diff --git a/extensions/discord/src/actions/handle-action.guild-admin.ts b/extensions/discord/src/actions/handle-action.guild-admin.ts index 478f7774617..762c47a4515 100644 --- a/extensions/discord/src/actions/handle-action.guild-admin.ts +++ b/extensions/discord/src/actions/handle-action.guild-admin.ts @@ -1,4 +1,4 @@ -import type { AgentToolResult } from "@mariozechner/pi-agent-core"; +import type { AgentToolResult } from "@earendil-works/pi-agent-core"; import { readNumberParam, readStringArrayParam, diff --git a/extensions/discord/src/actions/handle-action.ts b/extensions/discord/src/actions/handle-action.ts index cc3e81a8000..30a703a2379 100644 --- a/extensions/discord/src/actions/handle-action.ts +++ b/extensions/discord/src/actions/handle-action.ts @@ -1,4 +1,4 @@ -import type { AgentToolResult } from "@mariozechner/pi-agent-core"; +import type { AgentToolResult } from "@earendil-works/pi-agent-core"; import { readNumberParam, readStringArrayParam, diff --git a/extensions/discord/src/actions/runtime.guild.ts b/extensions/discord/src/actions/runtime.guild.ts index 5f33e6d1765..b30fde943dd 100644 --- a/extensions/discord/src/actions/runtime.guild.ts +++ b/extensions/discord/src/actions/runtime.guild.ts @@ -1,4 +1,4 @@ -import type { AgentToolResult } from "@mariozechner/pi-agent-core"; +import type { AgentToolResult } from "@earendil-works/pi-agent-core"; import { resolveDefaultDiscordAccountId } from "../accounts.js"; import { getPresence } from "../monitor/presence-cache.js"; import { diff --git a/extensions/discord/src/actions/runtime.messaging.ts b/extensions/discord/src/actions/runtime.messaging.ts index 6c2d4f78688..e8f211a12cf 100644 --- a/extensions/discord/src/actions/runtime.messaging.ts +++ b/extensions/discord/src/actions/runtime.messaging.ts @@ -1,4 +1,4 @@ -import type { AgentToolResult } from "@mariozechner/pi-agent-core"; +import type { AgentToolResult } from "@earendil-works/pi-agent-core"; import type { ActionGate, DiscordActionConfig, OpenClawConfig } from "../runtime-api.js"; import { handleDiscordMessageManagementAction } from "./runtime.messaging.messages.js"; import { handleDiscordReactionMessagingAction } from "./runtime.messaging.reactions.js"; diff --git a/extensions/discord/src/actions/runtime.moderation.ts b/extensions/discord/src/actions/runtime.moderation.ts index 81caf7f915c..d74d36012e5 100644 --- a/extensions/discord/src/actions/runtime.moderation.ts +++ b/extensions/discord/src/actions/runtime.moderation.ts @@ -1,4 +1,4 @@ -import type { AgentToolResult } from "@mariozechner/pi-agent-core"; +import type { AgentToolResult } from "@earendil-works/pi-agent-core"; import { type ActionGate, jsonResult, diff --git a/extensions/discord/src/actions/runtime.presence.ts b/extensions/discord/src/actions/runtime.presence.ts index 6573e66ef24..0eda11be9b8 100644 --- a/extensions/discord/src/actions/runtime.presence.ts +++ b/extensions/discord/src/actions/runtime.presence.ts @@ -1,4 +1,4 @@ -import type { AgentToolResult } from "@mariozechner/pi-agent-core"; +import type { AgentToolResult } from "@earendil-works/pi-agent-core"; import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime"; import type { Activity, UpdatePresenceData } from "../internal/gateway.js"; import { getGateway } from "../monitor/gateway-registry.js"; diff --git a/extensions/discord/src/actions/runtime.ts b/extensions/discord/src/actions/runtime.ts index fea20b59521..9463c59d4bc 100644 --- a/extensions/discord/src/actions/runtime.ts +++ b/extensions/discord/src/actions/runtime.ts @@ -1,4 +1,4 @@ -import type { AgentToolResult } from "@mariozechner/pi-agent-core"; +import type { AgentToolResult } from "@earendil-works/pi-agent-core"; import { createDiscordActionGate } from "../accounts.js"; import { readStringParam, type OpenClawConfig } from "../runtime-api.js"; import { handleDiscordGuildAction } from "./runtime.guild.js"; diff --git a/extensions/fireworks/package.json b/extensions/fireworks/package.json index f05d175588d..f4b4c547ae7 100644 --- a/extensions/fireworks/package.json +++ b/extensions/fireworks/package.json @@ -5,7 +5,7 @@ "description": "OpenClaw Fireworks provider plugin", "type": "module", "dependencies": { - "@mariozechner/pi-ai": "0.73.1" + "@earendil-works/pi-ai": "0.74.0" }, "devDependencies": { "@openclaw/plugin-sdk": "workspace:*" diff --git a/extensions/fireworks/stream.test.ts b/extensions/fireworks/stream.test.ts index 31e6b9ab59d..39a32733143 100644 --- a/extensions/fireworks/stream.test.ts +++ b/extensions/fireworks/stream.test.ts @@ -1,5 +1,5 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import type { Context, Model } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import type { Context, Model } from "@earendil-works/pi-ai"; import { describe, expect, it } from "vitest"; import { createFireworksKimiThinkingDisabledWrapper, diff --git a/extensions/fireworks/stream.ts b/extensions/fireworks/stream.ts index c77cca106ec..62e870d6e90 100644 --- a/extensions/fireworks/stream.ts +++ b/extensions/fireworks/stream.ts @@ -1,5 +1,5 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import { streamSimple } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import { streamSimple } from "@earendil-works/pi-ai"; import type { ProviderWrapStreamFnContext } from "openclaw/plugin-sdk/plugin-entry"; import { normalizeProviderId } from "openclaw/plugin-sdk/provider-model-shared"; import { streamWithPayloadPatch } from "openclaw/plugin-sdk/provider-stream-shared"; diff --git a/extensions/github-copilot/connection-bound-ids.live.test.ts b/extensions/github-copilot/connection-bound-ids.live.test.ts index f3da59924f5..d21c5ade071 100644 --- a/extensions/github-copilot/connection-bound-ids.live.test.ts +++ b/extensions/github-copilot/connection-bound-ids.live.test.ts @@ -1,4 +1,4 @@ -import { streamOpenAIResponses, type AssistantMessage, type Model } from "@mariozechner/pi-ai"; +import { streamOpenAIResponses, type AssistantMessage, type Model } from "@earendil-works/pi-ai"; import { describe, expect, it } from "vitest"; import { resolveFirstGithubToken } from "./auth.js"; import { buildCopilotDynamicHeaders } from "./stream.js"; diff --git a/extensions/github-copilot/models.test.ts b/extensions/github-copilot/models.test.ts index be65ecd3b45..c5cd4a7ed69 100644 --- a/extensions/github-copilot/models.test.ts +++ b/extensions/github-copilot/models.test.ts @@ -3,9 +3,9 @@ import { afterAll, beforeEach, describe, expect, it, vi } from "vitest"; import { buildCopilotModelDefinition, getDefaultCopilotModelIds } from "./models-defaults.js"; import { fetchCopilotUsage } from "./usage.js"; -vi.mock("@mariozechner/pi-ai/oauth", async () => { - const actual = await vi.importActual( - "@mariozechner/pi-ai/oauth", +vi.mock("@earendil-works/pi-ai/oauth", async () => { + const actual = await vi.importActual( + "@earendil-works/pi-ai/oauth", ); return { ...actual, @@ -41,7 +41,7 @@ import type { ProviderResolveDynamicModelContext } from "openclaw/plugin-sdk/cor import { fetchCopilotModelCatalog, resolveCopilotForwardCompatModel } from "./models.js"; afterAll(() => { - vi.doUnmock("@mariozechner/pi-ai/oauth"); + vi.doUnmock("@earendil-works/pi-ai/oauth"); vi.doUnmock("openclaw/plugin-sdk/provider-model-shared"); vi.doUnmock("openclaw/plugin-sdk/json-store"); vi.doUnmock("openclaw/plugin-sdk/state-paths"); diff --git a/extensions/github-copilot/package.json b/extensions/github-copilot/package.json index 6bd79e3b747..efe266cff45 100644 --- a/extensions/github-copilot/package.json +++ b/extensions/github-copilot/package.json @@ -8,7 +8,7 @@ "@clack/prompts": "^1.3.0" }, "devDependencies": { - "@mariozechner/pi-ai": "0.73.1", + "@earendil-works/pi-ai": "0.74.0", "@openclaw/plugin-sdk": "workspace:*" }, "openclaw": { diff --git a/extensions/github-copilot/stream.ts b/extensions/github-copilot/stream.ts index 1185f1ea473..93a82b627d7 100644 --- a/extensions/github-copilot/stream.ts +++ b/extensions/github-copilot/stream.ts @@ -1,5 +1,5 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import type { Context } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import type { Context } from "@earendil-works/pi-ai"; import type { ProviderWrapStreamFnContext } from "openclaw/plugin-sdk/plugin-entry"; import { buildCopilotIdeHeaders, COPILOT_INTEGRATION_ID } from "openclaw/plugin-sdk/provider-auth"; import { diff --git a/extensions/google/google-shared.test-helpers.ts b/extensions/google/google-shared.test-helpers.ts index 9023853c1a2..996a8634cad 100644 --- a/extensions/google/google-shared.test-helpers.ts +++ b/extensions/google/google-shared.test-helpers.ts @@ -1,4 +1,4 @@ -import type { Model } from "@mariozechner/pi-ai"; +import type { Model } from "@earendil-works/pi-ai"; import { expect } from "vitest"; function makeZeroUsageSnapshot() { diff --git a/extensions/google/google-shared.test.ts b/extensions/google/google-shared.test.ts index aff6bb70dab..b3074f5c0dc 100644 --- a/extensions/google/google-shared.test.ts +++ b/extensions/google/google-shared.test.ts @@ -1,9 +1,9 @@ -import type { Context, Tool } from "@mariozechner/pi-ai"; +import type { Context, Tool } from "@earendil-works/pi-ai"; import { describe, expect, it } from "vitest"; import { convertMessages, convertTools, -} from "../../node_modules/@mariozechner/pi-ai/dist/providers/google-shared.js"; +} from "../../node_modules/@earendil-works/pi-ai/dist/providers/google-shared.js"; import { asRecord, expectConvertedRoles, diff --git a/extensions/google/index.test.ts b/extensions/google/index.test.ts index cc57219d2a6..4fad739f690 100644 --- a/extensions/google/index.test.ts +++ b/extensions/google/index.test.ts @@ -1,4 +1,4 @@ -import type { Context, Model } from "@mariozechner/pi-ai"; +import type { Context, Model } from "@earendil-works/pi-ai"; import type { ProviderReplaySessionEntry, ProviderSanitizeReplayHistoryContext, diff --git a/extensions/google/package.json b/extensions/google/package.json index 332d3133d60..6ae7a0a157d 100644 --- a/extensions/google/package.json +++ b/extensions/google/package.json @@ -6,7 +6,7 @@ "type": "module", "dependencies": { "@google/genai": "^2.0.1", - "@mariozechner/pi-ai": "0.73.1" + "@earendil-works/pi-ai": "0.74.0" }, "devDependencies": { "@openclaw/plugin-sdk": "workspace:*" diff --git a/extensions/google/transport-stream.test.ts b/extensions/google/transport-stream.test.ts index f51ae6be974..2d93c7adb91 100644 --- a/extensions/google/transport-stream.test.ts +++ b/extensions/google/transport-stream.test.ts @@ -1,7 +1,7 @@ import { mkdir, mkdtemp, writeFile } from "node:fs/promises"; import os from "node:os"; import path from "node:path"; -import type { Model } from "@mariozechner/pi-ai"; +import type { Model } from "@earendil-works/pi-ai"; import { afterAll, afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; const { buildGuardedModelFetchMock, guardedFetchMock } = vi.hoisted(() => ({ diff --git a/extensions/google/transport-stream.ts b/extensions/google/transport-stream.ts index 643b9b70d16..c2fd6ad121a 100644 --- a/extensions/google/transport-stream.ts +++ b/extensions/google/transport-stream.ts @@ -1,4 +1,4 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; import { calculateCost, getEnvApiKey, @@ -6,7 +6,7 @@ import { type Model, type SimpleStreamOptions, type ThinkingLevel, -} from "@mariozechner/pi-ai"; +} from "@earendil-works/pi-ai"; import { createProviderHttpError } from "openclaw/plugin-sdk/provider-http"; import { buildGuardedModelFetch, diff --git a/extensions/kilocode/index.test.ts b/extensions/kilocode/index.test.ts index 509f3083907..2f653652103 100644 --- a/extensions/kilocode/index.test.ts +++ b/extensions/kilocode/index.test.ts @@ -1,5 +1,5 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import type { Context, Model } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import type { Context, Model } from "@earendil-works/pi-ai"; import { registerSingleProviderPlugin } from "openclaw/plugin-sdk/plugin-test-runtime"; import { expectPassthroughReplayPolicy } from "openclaw/plugin-sdk/provider-test-contracts"; import { describe, expect, it } from "vitest"; diff --git a/extensions/kimi-coding/package.json b/extensions/kimi-coding/package.json index 54757654b26..0dc5a2106e0 100644 --- a/extensions/kimi-coding/package.json +++ b/extensions/kimi-coding/package.json @@ -5,7 +5,7 @@ "description": "OpenClaw Kimi provider plugin", "type": "module", "dependencies": { - "@mariozechner/pi-ai": "0.73.1" + "@earendil-works/pi-ai": "0.74.0" }, "devDependencies": { "@openclaw/plugin-sdk": "workspace:*" diff --git a/extensions/kimi-coding/stream.test.ts b/extensions/kimi-coding/stream.test.ts index 42dc36c5145..83a77efaaa4 100644 --- a/extensions/kimi-coding/stream.test.ts +++ b/extensions/kimi-coding/stream.test.ts @@ -1,5 +1,5 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import type { Context, Model } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import type { Context, Model } from "@earendil-works/pi-ai"; import { describe, expect, it } from "vitest"; import { createKimiThinkingWrapper, diff --git a/extensions/kimi-coding/stream.ts b/extensions/kimi-coding/stream.ts index 8dd873aa0ab..5f8a5e5b57d 100644 --- a/extensions/kimi-coding/stream.ts +++ b/extensions/kimi-coding/stream.ts @@ -1,5 +1,5 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import { streamSimple } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import { streamSimple } from "@earendil-works/pi-ai"; import type { ProviderWrapStreamFnContext } from "openclaw/plugin-sdk/plugin-entry"; import { streamWithPayloadPatch } from "openclaw/plugin-sdk/provider-stream-shared"; import { normalizeOptionalLowercaseString } from "openclaw/plugin-sdk/string-coerce-runtime"; diff --git a/extensions/lmstudio/package.json b/extensions/lmstudio/package.json index a7cabaa1fb0..d9c5085e2f3 100644 --- a/extensions/lmstudio/package.json +++ b/extensions/lmstudio/package.json @@ -5,7 +5,7 @@ "description": "OpenClaw LM Studio provider plugin", "type": "module", "dependencies": { - "@mariozechner/pi-ai": "0.73.1" + "@earendil-works/pi-ai": "0.74.0" }, "openclaw": { "extensions": [ diff --git a/extensions/lmstudio/src/stream.test.ts b/extensions/lmstudio/src/stream.test.ts index 496f3dbe81a..bb4a0494e02 100644 --- a/extensions/lmstudio/src/stream.test.ts +++ b/extensions/lmstudio/src/stream.test.ts @@ -1,5 +1,5 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import { createAssistantMessageEventStream } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import { createAssistantMessageEventStream } from "@earendil-works/pi-ai"; import { afterAll, afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { __resetLmstudioPreloadCooldownForTest, wrapLmstudioInferencePreload } from "./stream.js"; diff --git a/extensions/lmstudio/src/stream.ts b/extensions/lmstudio/src/stream.ts index 08544c968ff..211d4439f58 100644 --- a/extensions/lmstudio/src/stream.ts +++ b/extensions/lmstudio/src/stream.ts @@ -1,5 +1,5 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import { createAssistantMessageEventStream, streamSimple } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import { createAssistantMessageEventStream, streamSimple } from "@earendil-works/pi-ai"; import { createSubsystemLogger } from "openclaw/plugin-sdk/logging-core"; import type { ProviderWrapStreamFnContext } from "openclaw/plugin-sdk/plugin-entry"; import { ssrfPolicyFromHttpBaseUrlAllowedHostname } from "openclaw/plugin-sdk/ssrf-runtime"; diff --git a/extensions/matrix/src/tool-actions.ts b/extensions/matrix/src/tool-actions.ts index 614adac5c88..582bbc20be1 100644 --- a/extensions/matrix/src/tool-actions.ts +++ b/extensions/matrix/src/tool-actions.ts @@ -1,4 +1,4 @@ -import type { AgentToolResult } from "@mariozechner/pi-agent-core"; +import type { AgentToolResult } from "@earendil-works/pi-agent-core"; import { normalizeOptionalLowercaseString } from "openclaw/plugin-sdk/string-coerce-runtime"; import { resolveMatrixAccountConfig } from "./matrix/accounts.js"; import { diff --git a/extensions/minimax/index.test.ts b/extensions/minimax/index.test.ts index 6f2caef2685..8c2bb4626c9 100644 --- a/extensions/minimax/index.test.ts +++ b/extensions/minimax/index.test.ts @@ -1,5 +1,5 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import type { Context, Model } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import type { Context, Model } from "@earendil-works/pi-ai"; import { registerProviderPlugin, requireRegisteredProvider, diff --git a/extensions/moonshot/index.test.ts b/extensions/moonshot/index.test.ts index a3531ee36fd..482fd9738a4 100644 --- a/extensions/moonshot/index.test.ts +++ b/extensions/moonshot/index.test.ts @@ -1,5 +1,5 @@ import fs from "node:fs"; -import type { Context, Model } from "@mariozechner/pi-ai"; +import type { Context, Model } from "@earendil-works/pi-ai"; import { registerSingleProviderPlugin } from "openclaw/plugin-sdk/plugin-test-runtime"; import { createCapturedThinkingConfigStream } from "openclaw/plugin-sdk/provider-test-contracts"; import { describe, expect, it } from "vitest"; diff --git a/extensions/ollama/package.json b/extensions/ollama/package.json index f18fe4f40a3..9e554fa9ebe 100644 --- a/extensions/ollama/package.json +++ b/extensions/ollama/package.json @@ -5,7 +5,7 @@ "description": "OpenClaw Ollama provider plugin", "type": "module", "dependencies": { - "@mariozechner/pi-ai": "0.73.1", + "@earendil-works/pi-ai": "0.74.0", "typebox": "1.1.38" }, "devDependencies": { diff --git a/extensions/ollama/src/stream.ts b/extensions/ollama/src/stream.ts index 1ac2082b8b4..d51368fc7d2 100644 --- a/extensions/ollama/src/stream.ts +++ b/extensions/ollama/src/stream.ts @@ -1,5 +1,5 @@ import { randomUUID } from "node:crypto"; -import type { StreamFn } from "@mariozechner/pi-agent-core"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; import type { AssistantMessage, StopReason, @@ -8,8 +8,8 @@ import type { ToolCall, Tool, Usage, -} from "@mariozechner/pi-ai"; -import { createAssistantMessageEventStream, streamSimple } from "@mariozechner/pi-ai"; +} from "@earendil-works/pi-ai"; +import { createAssistantMessageEventStream, streamSimple } from "@earendil-works/pi-ai"; import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime"; import type { OpenClawConfig, diff --git a/extensions/openai/index.test.ts b/extensions/openai/index.test.ts index e0b60ad03b2..fbddd7bb9f1 100644 --- a/extensions/openai/index.test.ts +++ b/extensions/openai/index.test.ts @@ -32,7 +32,7 @@ vi.mock("openclaw/plugin-sdk/runtime-env", async () => { }; }); -vi.mock("@mariozechner/pi-ai/oauth", () => ({ +vi.mock("@earendil-works/pi-ai/oauth", () => ({ getOAuthApiKey: vi.fn(), getOAuthProviders: () => [], loginOpenAICodex: vi.fn(), diff --git a/extensions/openai/native-web-search.ts b/extensions/openai/native-web-search.ts index 9eba01c818c..7257b62f125 100644 --- a/extensions/openai/native-web-search.ts +++ b/extensions/openai/native-web-search.ts @@ -1,5 +1,5 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import { streamSimple } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import { streamSimple } from "@earendil-works/pi-ai"; import type { OpenClawConfig } from "openclaw/plugin-sdk/config-contracts"; import { normalizeProviderId } from "openclaw/plugin-sdk/provider-model-shared"; import { streamWithPayloadPatch } from "openclaw/plugin-sdk/provider-stream-shared"; diff --git a/extensions/openai/openai-codex-oauth.runtime.ts b/extensions/openai/openai-codex-oauth.runtime.ts index 9214ea23249..15b012acd25 100644 --- a/extensions/openai/openai-codex-oauth.runtime.ts +++ b/extensions/openai/openai-codex-oauth.runtime.ts @@ -1,5 +1,5 @@ import path from "node:path"; -import { loginOpenAICodex, type OAuthCredentials } from "@mariozechner/pi-ai/oauth"; +import { loginOpenAICodex, type OAuthCredentials } from "@earendil-works/pi-ai/oauth"; import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime"; import type { ProviderAuthContext } from "openclaw/plugin-sdk/plugin-entry"; import { ensureGlobalUndiciEnvProxyDispatcher } from "openclaw/plugin-sdk/runtime-env"; diff --git a/extensions/openai/openai-codex-provider.runtime.ts b/extensions/openai/openai-codex-provider.runtime.ts index 7f328bc7c80..1cd9854f406 100644 --- a/extensions/openai/openai-codex-provider.runtime.ts +++ b/extensions/openai/openai-codex-provider.runtime.ts @@ -1,7 +1,7 @@ import { getOAuthApiKey as getOAuthApiKeyFromPi, refreshOpenAICodexToken as refreshOpenAICodexTokenFromPi, -} from "@mariozechner/pi-ai/oauth"; +} from "@earendil-works/pi-ai/oauth"; import { ensureGlobalUndiciEnvProxyDispatcher } from "openclaw/plugin-sdk/runtime-env"; type OpenAICodexProviderRuntimeDeps = { diff --git a/extensions/openai/openai-provider.live.test.ts b/extensions/openai/openai-provider.live.test.ts index ba7217f2536..ddb9f3a996b 100644 --- a/extensions/openai/openai-provider.live.test.ts +++ b/extensions/openai/openai-provider.live.test.ts @@ -1,4 +1,4 @@ -import { getModel, type Api, type Model } from "@mariozechner/pi-ai"; +import { getModel, type Api, type Model } from "@earendil-works/pi-ai"; import OpenAI from "openai"; import type { ProviderRuntimeModel } from "openclaw/plugin-sdk/plugin-entry"; import { describe, expect, it } from "vitest"; diff --git a/extensions/openai/openai-provider.test.ts b/extensions/openai/openai-provider.test.ts index 4fae0eefd52..33afd123b73 100644 --- a/extensions/openai/openai-provider.test.ts +++ b/extensions/openai/openai-provider.test.ts @@ -1,5 +1,5 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import type { Context, Model, SimpleStreamOptions } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import type { Context, Model, SimpleStreamOptions } from "@earendil-works/pi-ai"; import { beforeEach, describe, expect, it, vi } from "vitest"; import { buildOpenAICodexProviderPlugin } from "./openai-codex-provider.js"; import { buildOpenAIProvider } from "./openai-provider.js"; diff --git a/extensions/openai/openai.live.test.ts b/extensions/openai/openai.live.test.ts index ae46107957b..b1fc16d87ea 100644 --- a/extensions/openai/openai.live.test.ts +++ b/extensions/openai/openai.live.test.ts @@ -1,8 +1,8 @@ import fs from "node:fs/promises"; import os from "node:os"; import path from "node:path"; -import { getModel, type Api, type Model } from "@mariozechner/pi-ai"; -import { AuthStorage, ModelRegistry } from "@mariozechner/pi-coding-agent"; +import { getModel, type Api, type Model } from "@earendil-works/pi-ai"; +import { AuthStorage, ModelRegistry } from "@earendil-works/pi-coding-agent"; import OpenAI from "openai"; import type { ResolvedTtsConfig } from "openclaw/plugin-sdk/agent-runtime"; import type { OpenClawConfig } from "openclaw/plugin-sdk/config-contracts"; diff --git a/extensions/openai/openclaw.plugin.test.ts b/extensions/openai/openclaw.plugin.test.ts index ea6a5245344..28bae24f50a 100644 --- a/extensions/openai/openclaw.plugin.test.ts +++ b/extensions/openai/openclaw.plugin.test.ts @@ -68,7 +68,7 @@ function providerWizardByKey() { describe("OpenAI plugin manifest", () => { it("keeps runtime dependencies in the package manifest", () => { - expect(packageJson.dependencies?.["@mariozechner/pi-ai"]).toBe("0.73.1"); + expect(packageJson.dependencies?.["@earendil-works/pi-ai"]).toBe("0.74.0"); expect(packageJson.dependencies?.ws).toBe("^8.20.0"); }); diff --git a/extensions/openai/package.json b/extensions/openai/package.json index 0c2b0f7ac42..b10a14be2db 100644 --- a/extensions/openai/package.json +++ b/extensions/openai/package.json @@ -5,7 +5,7 @@ "description": "OpenClaw OpenAI provider plugins", "type": "module", "dependencies": { - "@mariozechner/pi-ai": "0.73.1", + "@earendil-works/pi-ai": "0.74.0", "ws": "^8.20.0" }, "devDependencies": { diff --git a/extensions/opencode-go/index.test.ts b/extensions/opencode-go/index.test.ts index 39cf4d4eccb..01d6d1298fe 100644 --- a/extensions/opencode-go/index.test.ts +++ b/extensions/opencode-go/index.test.ts @@ -1,4 +1,4 @@ -import { getModels } from "@mariozechner/pi-ai"; +import { getModels } from "@earendil-works/pi-ai"; import { registerProviderPlugin, registerSingleProviderPlugin, diff --git a/extensions/opencode/media-understanding-provider.ts b/extensions/opencode/media-understanding-provider.ts index cd389153552..83c50a9f0de 100644 --- a/extensions/opencode/media-understanding-provider.ts +++ b/extensions/opencode/media-understanding-provider.ts @@ -1,4 +1,4 @@ -import type { ProviderStreamOptions } from "@mariozechner/pi-ai"; +import type { ProviderStreamOptions } from "@earendil-works/pi-ai"; import { describeImageWithModelPayloadTransform, describeImagesWithModelPayloadTransform, diff --git a/extensions/openrouter/index.test.ts b/extensions/openrouter/index.test.ts index ddebbf9aa1e..350af53205f 100644 --- a/extensions/openrouter/index.test.ts +++ b/extensions/openrouter/index.test.ts @@ -196,7 +196,7 @@ describe("openrouter provider hooks", () => { it("injects provider routing into compat before applying stream wrappers", async () => { const provider = await registerSingleProviderPlugin(openrouterPlugin); const baseStreamFn = vi.fn( - (..._args: Parameters) => + (..._args: Parameters) => ({ async *[Symbol.asyncIterator]() {} }) as never, ); @@ -235,8 +235,8 @@ describe("openrouter provider hooks", () => { let capturedPayload: Record | undefined; const baseStreamFn = vi.fn( ( - ...args: Parameters - ): ReturnType => { + ...args: Parameters + ): ReturnType => { void args[2]?.onPayload?.({}, args[0]); return { async *[Symbol.asyncIterator]() {} } as never; }, @@ -274,8 +274,8 @@ describe("openrouter provider hooks", () => { let capturedPayload: Record | undefined; const baseStreamFn = vi.fn( ( - ...args: Parameters - ): ReturnType => { + ...args: Parameters + ): ReturnType => { const payload = { messages: [ { role: "user", content: "read file" }, @@ -329,8 +329,8 @@ describe("openrouter provider hooks", () => { const payloads: Array> = []; const baseStreamFn = vi.fn( ( - ...args: Parameters - ): ReturnType => { + ...args: Parameters + ): ReturnType => { const payload = { messages: [] }; void args[2]?.onPayload?.(payload, args[0]); payloads.push(payload); @@ -373,8 +373,8 @@ describe("openrouter provider hooks", () => { const payloads: Array> = []; const baseStreamFn = vi.fn( ( - ...args: Parameters - ): ReturnType => { + ...args: Parameters + ): ReturnType => { const payload = { messages: [{ role: "assistant", tool_calls: [{ id: "call_1", type: "function" }] }], }; @@ -437,8 +437,8 @@ describe("openrouter provider hooks", () => { let capturedPayload: Record | undefined; const baseStreamFn = vi.fn( ( - ...args: Parameters - ): ReturnType => { + ...args: Parameters + ): ReturnType => { const payload = { messages: [ { role: "user", content: "Return JSON." }, @@ -480,8 +480,8 @@ describe("openrouter provider hooks", () => { const payloads: Array> = []; const baseStreamFn = vi.fn( ( - ...args: Parameters - ): ReturnType => { + ...args: Parameters + ): ReturnType => { const payload = { messages: [ { role: "user", content: "Return JSON." }, diff --git a/extensions/openrouter/openrouter.live.test.ts b/extensions/openrouter/openrouter.live.test.ts index 6ba22e869a1..24a6b77fff2 100644 --- a/extensions/openrouter/openrouter.live.test.ts +++ b/extensions/openrouter/openrouter.live.test.ts @@ -1,4 +1,4 @@ -import { AuthStorage, ModelRegistry } from "@mariozechner/pi-coding-agent"; +import { AuthStorage, ModelRegistry } from "@earendil-works/pi-coding-agent"; import OpenAI from "openai"; import { registerProviderPlugin, diff --git a/extensions/openrouter/stream.ts b/extensions/openrouter/stream.ts index 88d1b7a14ec..7e781b34d47 100644 --- a/extensions/openrouter/stream.ts +++ b/extensions/openrouter/stream.ts @@ -1,4 +1,4 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; import type { ProviderWrapStreamFnContext } from "openclaw/plugin-sdk/plugin-entry"; import { OPENROUTER_THINKING_STREAM_HOOKS } from "openclaw/plugin-sdk/provider-stream-family"; import { diff --git a/extensions/qwen/stream.test.ts b/extensions/qwen/stream.test.ts index 6424497bd2b..8e30e90a77f 100644 --- a/extensions/qwen/stream.test.ts +++ b/extensions/qwen/stream.test.ts @@ -1,5 +1,5 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import type { Context, Model } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import type { Context, Model } from "@earendil-works/pi-ai"; import { describe, expect, it } from "vitest"; import { createQwenThinkingWrapper, wrapQwenProviderStream } from "./stream.js"; diff --git a/extensions/qwen/stream.ts b/extensions/qwen/stream.ts index c3ec46f91d7..c406c85a5c8 100644 --- a/extensions/qwen/stream.ts +++ b/extensions/qwen/stream.ts @@ -1,4 +1,4 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; import type { ProviderWrapStreamFnContext } from "openclaw/plugin-sdk/plugin-entry"; import { normalizeProviderId } from "openclaw/plugin-sdk/provider-model-shared"; import { diff --git a/extensions/slack/src/action-runtime.ts b/extensions/slack/src/action-runtime.ts index 422257ee6da..909733387df 100644 --- a/extensions/slack/src/action-runtime.ts +++ b/extensions/slack/src/action-runtime.ts @@ -1,4 +1,4 @@ -import type { AgentToolResult } from "@mariozechner/pi-agent-core"; +import type { AgentToolResult } from "@earendil-works/pi-agent-core"; import { readBooleanParam } from "openclaw/plugin-sdk/boolean-param"; import { isSingleUseReplyToMode } from "openclaw/plugin-sdk/reply-reference"; import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime"; diff --git a/extensions/slack/src/channel-actions.ts b/extensions/slack/src/channel-actions.ts index a1895900b07..6271c0842a6 100644 --- a/extensions/slack/src/channel-actions.ts +++ b/extensions/slack/src/channel-actions.ts @@ -1,4 +1,4 @@ -import type { AgentToolResult } from "@mariozechner/pi-agent-core"; +import type { AgentToolResult } from "@earendil-works/pi-agent-core"; import type { ChannelMessageActionAdapter } from "openclaw/plugin-sdk/channel-contract"; import type { SlackActionContext } from "./action-runtime.js"; import { handleSlackMessageAction } from "./message-action-dispatch.js"; diff --git a/extensions/slack/src/message-action-dispatch.ts b/extensions/slack/src/message-action-dispatch.ts index 2a3915023a0..4e3c46aca1b 100644 --- a/extensions/slack/src/message-action-dispatch.ts +++ b/extensions/slack/src/message-action-dispatch.ts @@ -1,4 +1,4 @@ -import type { AgentToolResult } from "@mariozechner/pi-agent-core"; +import type { AgentToolResult } from "@earendil-works/pi-agent-core"; import { readBooleanParam } from "openclaw/plugin-sdk/boolean-param"; import type { ChannelMessageActionContext } from "openclaw/plugin-sdk/channel-contract"; import { diff --git a/extensions/telegram/src/action-runtime.ts b/extensions/telegram/src/action-runtime.ts index f0779eac9e8..9c872112601 100644 --- a/extensions/telegram/src/action-runtime.ts +++ b/extensions/telegram/src/action-runtime.ts @@ -1,4 +1,4 @@ -import type { AgentToolResult } from "@mariozechner/pi-agent-core"; +import type { AgentToolResult } from "@earendil-works/pi-agent-core"; import { readBooleanParam } from "openclaw/plugin-sdk/boolean-param"; import { jsonResult, diff --git a/extensions/test-support/provider-model-test-helpers.ts b/extensions/test-support/provider-model-test-helpers.ts index 10536e19fb2..5420200940d 100644 --- a/extensions/test-support/provider-model-test-helpers.ts +++ b/extensions/test-support/provider-model-test-helpers.ts @@ -1,4 +1,4 @@ -import type { ModelRegistry } from "@mariozechner/pi-coding-agent"; +import type { ModelRegistry } from "@earendil-works/pi-coding-agent"; import type { ProviderCatalogContext, ProviderResolveDynamicModelContext, diff --git a/extensions/twitch/package.json b/extensions/twitch/package.json index c7505934bd0..62663ad0a60 100644 --- a/extensions/twitch/package.json +++ b/extensions/twitch/package.json @@ -8,9 +8,9 @@ }, "type": "module", "dependencies": { - "@twurple/api": "^8.1.3", - "@twurple/auth": "^8.1.3", - "@twurple/chat": "^8.1.3", + "@twurple/api": "^8.1.4", + "@twurple/auth": "^8.1.4", + "@twurple/chat": "^8.1.4", "zod": "^4.4.3" }, "devDependencies": { diff --git a/extensions/vllm/stream.test.ts b/extensions/vllm/stream.test.ts index 15263bbc830..38ca89ce509 100644 --- a/extensions/vllm/stream.test.ts +++ b/extensions/vllm/stream.test.ts @@ -1,5 +1,5 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import type { Context, Model } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import type { Context, Model } from "@earendil-works/pi-ai"; import { describe, expect, it } from "vitest"; import { createVllmProviderThinkingWrapper, diff --git a/extensions/vllm/stream.ts b/extensions/vllm/stream.ts index 19f5392ea1f..603087bb40c 100644 --- a/extensions/vllm/stream.ts +++ b/extensions/vllm/stream.ts @@ -1,4 +1,4 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; import type { ProviderWrapStreamFnContext } from "openclaw/plugin-sdk/plugin-entry"; import { normalizeProviderId } from "openclaw/plugin-sdk/provider-model-shared"; import { diff --git a/extensions/whatsapp/src/action-runtime.ts b/extensions/whatsapp/src/action-runtime.ts index 1d34a681554..0412b84c9d8 100644 --- a/extensions/whatsapp/src/action-runtime.ts +++ b/extensions/whatsapp/src/action-runtime.ts @@ -1,4 +1,4 @@ -import type { AgentToolResult } from "@mariozechner/pi-agent-core"; +import type { AgentToolResult } from "@earendil-works/pi-agent-core"; import { createActionGate, jsonResult, diff --git a/extensions/xai/package.json b/extensions/xai/package.json index 219436053a8..107e327d2b1 100644 --- a/extensions/xai/package.json +++ b/extensions/xai/package.json @@ -5,7 +5,7 @@ "description": "OpenClaw xAI plugin", "type": "module", "dependencies": { - "@mariozechner/pi-ai": "0.73.1", + "@earendil-works/pi-ai": "0.74.0", "typebox": "1.1.38" }, "devDependencies": { diff --git a/extensions/xai/stream.test.ts b/extensions/xai/stream.test.ts index 2ede53d6027..9d66ec77aa5 100644 --- a/extensions/xai/stream.test.ts +++ b/extensions/xai/stream.test.ts @@ -1,6 +1,6 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import type { Api, Context, Model } from "@mariozechner/pi-ai"; -import { streamSimpleOpenAIResponses } from "@mariozechner/pi-ai/openai-responses"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import type { Api, Context, Model } from "@earendil-works/pi-ai"; +import { streamSimpleOpenAIResponses } from "@earendil-works/pi-ai/openai-responses"; import { describe, expect, it } from "vitest"; import { applyXaiRuntimeModelCompat } from "./runtime-model-compat.js"; import { diff --git a/extensions/xai/stream.ts b/extensions/xai/stream.ts index 84969ed7606..01b6d7549bd 100644 --- a/extensions/xai/stream.ts +++ b/extensions/xai/stream.ts @@ -1,5 +1,5 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import { streamSimple } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import { streamSimple } from "@earendil-works/pi-ai"; import type { ProviderWrapStreamFnContext } from "openclaw/plugin-sdk/plugin-entry"; import { composeProviderStreamWrappers, diff --git a/extensions/xai/test-helpers.ts b/extensions/xai/test-helpers.ts index 366019f4adf..790ab0346db 100644 --- a/extensions/xai/test-helpers.ts +++ b/extensions/xai/test-helpers.ts @@ -1,5 +1,5 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import type { Context, Model } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import type { Context, Model } from "@earendil-works/pi-ai"; import { expect } from "vitest"; type XaiToolPayloadFunction = { diff --git a/extensions/xai/x-search-tool-shared.ts b/extensions/xai/x-search-tool-shared.ts index 9d37ef8a26f..4cbbaede68f 100644 --- a/extensions/xai/x-search-tool-shared.ts +++ b/extensions/xai/x-search-tool-shared.ts @@ -1,4 +1,4 @@ -import type { AgentToolResult } from "@mariozechner/pi-agent-core"; +import type { AgentToolResult } from "@earendil-works/pi-agent-core"; import { Type } from "typebox"; export function buildMissingXSearchApiKeyPayload() { diff --git a/extensions/zai/index.test.ts b/extensions/zai/index.test.ts index 75d471cea33..ff0c8ad1d66 100644 --- a/extensions/zai/index.test.ts +++ b/extensions/zai/index.test.ts @@ -1,5 +1,5 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import type { Context, Model } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import type { Context, Model } from "@earendil-works/pi-ai"; import { registerSingleProviderPlugin } from "openclaw/plugin-sdk/plugin-test-runtime"; import { buildOpenAICompletionsParams } from "openclaw/plugin-sdk/provider-transport-runtime"; import { describe, expect, it } from "vitest"; diff --git a/package.json b/package.json index 46597e62b57..a054f5e7ab3 100644 --- a/package.json +++ b/package.json @@ -1683,9 +1683,6 @@ "test:voicecall:closedloop": "node scripts/test-voicecall-closedloop.mjs", "test:watch": "node scripts/test-projects.mjs --watch", "test:windows:ci": "node scripts/test-projects.mjs src/shared/runtime-import.test.ts src/plugins/import-specifier.test.ts src/process/exec.windows.test.ts src/process/windows-command.test.ts src/infra/windows-install-roots.test.ts extensions/lobster/src/lobster-runner.test.ts test/scripts/npm-runner.test.ts test/scripts/pnpm-runner.test.ts test/scripts/ui.test.ts test/scripts/vitest-process-group.test.ts", - "testbox:claim": "node scripts/blacksmith-testbox-runner.mjs --claim", - "testbox:run": "node scripts/blacksmith-testbox-runner.mjs", - "testbox:sanity": "node scripts/testbox-sync-sanity.mjs", "tool-display:check": "node --import tsx scripts/tool-display.ts --check", "tool-display:write": "node --import tsx scripts/tool-display.ts --write", "ts-topology": "node --import tsx scripts/ts-topology.ts", @@ -1727,13 +1724,13 @@ "@grammyjs/transformer-throttler": "^1.2.1", "@homebridge/ciao": "^1.3.8", "@lydell/node-pty": "1.2.0-beta.12", - "@mariozechner/pi-agent-core": "0.73.1", - "@mariozechner/pi-ai": "0.73.1", - "@mariozechner/pi-coding-agent": "0.73.1", - "@mariozechner/pi-tui": "0.73.1", + "@earendil-works/pi-agent-core": "0.74.0", + "@earendil-works/pi-ai": "0.74.0", + "@earendil-works/pi-coding-agent": "0.74.0", + "@earendil-works/pi-tui": "0.74.0", "@modelcontextprotocol/sdk": "1.29.0", "@mozilla/readability": "^0.6.0", - "@openclaw/fs-safe": "github:openclaw/fs-safe#c7ccb99d3058f2acf2ad2758ad2470c7e113a53c", + "@openclaw/fs-safe": "^0.2.1", "@slack/bolt": "^4.7.2", "@slack/types": "^2.21.1", "@slack/web-api": "^7.15.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 37715d4ee6c..e58dd28b51a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -31,15 +31,11 @@ overrides: protobufjs: 7.5.5 uuid: 14.0.0 -packageExtensionsChecksum: sha256-n+P/SQo4Pf+dHYpYn1Y6wL4cJEVoVzZ835N0OEp4TM8= +packageExtensionsChecksum: sha256-dYQ0sWkVmDP3h45qaFTG+rd1lBoV5PWy5sLOMeDND7g= patchedDependencies: - '@agentclientprotocol/claude-agent-acp@0.33.1': - hash: 3995624bb834cc60fea1461c7ef33f1fcdd8fb58b8f43f2f1490bc689f6e1be2 - path: patches/@agentclientprotocol__claude-agent-acp@0.33.1.patch - baileys@7.0.0-rc10: - hash: a9aea1790d2c65b1ae543c77faca4119bbfb91ee3b6ca6c38d1cad4f5702ada2 - path: patches/baileys@7.0.0-rc10.patch + '@agentclientprotocol/claude-agent-acp@0.33.1': 3995624bb834cc60fea1461c7ef33f1fcdd8fb58b8f43f2f1490bc689f6e1be2 + baileys@7.0.0-rc10: a9aea1790d2c65b1ae543c77faca4119bbfb91ee3b6ca6c38d1cad4f5702ada2 importers: @@ -72,6 +68,18 @@ importers: '@clack/prompts': specifier: ^1.3.0 version: 1.3.0 + '@earendil-works/pi-agent-core': + specifier: 0.74.0 + version: 0.74.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) + '@earendil-works/pi-ai': + specifier: 0.74.0 + version: 0.74.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) + '@earendil-works/pi-coding-agent': + specifier: 0.74.0 + version: 0.74.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) + '@earendil-works/pi-tui': + specifier: 0.74.0 + version: 0.74.0 '@google/genai': specifier: ^2.0.1 version: 2.0.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3)) @@ -87,18 +95,6 @@ importers: '@lydell/node-pty': specifier: 1.2.0-beta.12 version: 1.2.0-beta.12 - '@mariozechner/pi-agent-core': - specifier: 0.73.1 - version: 0.73.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) - '@mariozechner/pi-ai': - specifier: 0.73.1 - version: 0.73.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) - '@mariozechner/pi-coding-agent': - specifier: 0.73.1 - version: 0.73.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) - '@mariozechner/pi-tui': - specifier: 0.73.1 - version: 0.73.1 '@modelcontextprotocol/sdk': specifier: 1.29.0 version: 1.29.0(zod@4.4.3) @@ -106,8 +102,8 @@ importers: specifier: ^0.6.0 version: 0.6.0 '@openclaw/fs-safe': - specifier: github:openclaw/fs-safe#c7ccb99d3058f2acf2ad2758ad2470c7e113a53c - version: https://codeload.github.com/openclaw/fs-safe/tar.gz/c7ccb99d3058f2acf2ad2758ad2470c7e113a53c + specifier: ^0.2.1 + version: 0.2.1 '@slack/bolt': specifier: ^4.7.2 version: 4.7.2(@types/express@5.0.6) @@ -288,7 +284,7 @@ importers: version: 0.21.1(signal-polyfill@0.2.2) tsdown: specifier: 0.22.0 - version: 0.22.0(@typescript/native-preview@7.0.0-dev.20260510.1)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.37) + version: 0.22.0(@typescript/native-preview@7.0.0-dev.20260510.1)(tsx@4.21.0)(typescript@6.0.3) tsx: specifier: ^4.21.0 version: 4.21.0 @@ -339,9 +335,9 @@ importers: '@aws-sdk/credential-provider-node': specifier: 3.972.39 version: 3.972.39 - '@mariozechner/pi-ai': - specifier: 0.73.1 - version: 0.73.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) + '@earendil-works/pi-ai': + specifier: 0.74.0 + version: 0.74.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) '@smithy/shared-ini-file-loader': specifier: 4.4.9 version: 4.4.9 @@ -358,9 +354,9 @@ importers: '@aws/bedrock-token-generator': specifier: ^1.1.0 version: 1.1.0 - '@mariozechner/pi-ai': - specifier: 0.73.1 - version: 0.73.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) + '@earendil-works/pi-ai': + specifier: 0.74.0 + version: 0.74.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) devDependencies: '@openclaw/plugin-sdk': specifier: workspace:* @@ -368,9 +364,9 @@ importers: extensions/anthropic: dependencies: - '@mariozechner/pi-ai': - specifier: 0.73.1 - version: 0.73.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) + '@earendil-works/pi-ai': + specifier: 0.74.0 + version: 0.74.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) devDependencies: '@openclaw/plugin-sdk': specifier: workspace:* @@ -381,12 +377,12 @@ importers: '@anthropic-ai/vertex-sdk': specifier: ^0.16.0 version: 0.16.0(zod@4.4.3) - '@mariozechner/pi-agent-core': - specifier: 0.73.1 - version: 0.73.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) - '@mariozechner/pi-ai': - specifier: 0.73.1 - version: 0.73.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) + '@earendil-works/pi-agent-core': + specifier: 0.74.0 + version: 0.74.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) + '@earendil-works/pi-ai': + specifier: 0.74.0 + version: 0.74.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) devDependencies: '@openclaw/plugin-sdk': specifier: workspace:* @@ -515,9 +511,9 @@ importers: extensions/codex: dependencies: - '@mariozechner/pi-coding-agent': - specifier: 0.73.1 - version: 0.73.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) + '@earendil-works/pi-coding-agent': + specifier: 0.74.0 + version: 0.74.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) '@openai/codex': specifier: 0.130.0 version: 0.130.0 @@ -637,7 +633,7 @@ importers: dependencies: '@discordjs/voice': specifier: ^0.19.2 - version: 0.19.2(@discordjs/opus@0.10.0)(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(opusscript@0.1.1) + version: 0.19.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(opusscript@0.1.1) discord-api-types: specifier: ^0.38.47 version: 0.38.47 @@ -745,9 +741,9 @@ importers: extensions/fireworks: dependencies: - '@mariozechner/pi-ai': - specifier: 0.73.1 - version: 0.73.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) + '@earendil-works/pi-ai': + specifier: 0.74.0 + version: 0.74.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) devDependencies: '@openclaw/plugin-sdk': specifier: workspace:* @@ -759,21 +755,21 @@ importers: specifier: ^1.3.0 version: 1.3.0 devDependencies: - '@mariozechner/pi-ai': - specifier: 0.73.1 - version: 0.73.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) + '@earendil-works/pi-ai': + specifier: 0.74.0 + version: 0.74.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) '@openclaw/plugin-sdk': specifier: workspace:* version: link:../../packages/plugin-sdk extensions/google: dependencies: + '@earendil-works/pi-ai': + specifier: 0.74.0 + version: 0.74.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) '@google/genai': specifier: ^2.0.1 version: 2.0.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3)) - '@mariozechner/pi-ai': - specifier: 0.73.1 - version: 0.73.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) devDependencies: '@openclaw/plugin-sdk': specifier: workspace:* @@ -868,9 +864,9 @@ importers: extensions/kimi-coding: dependencies: - '@mariozechner/pi-ai': - specifier: 0.73.1 - version: 0.73.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) + '@earendil-works/pi-ai': + specifier: 0.74.0 + version: 0.74.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) devDependencies: '@openclaw/plugin-sdk': specifier: workspace:* @@ -910,9 +906,9 @@ importers: extensions/lmstudio: dependencies: - '@mariozechner/pi-ai': - specifier: 0.73.1 - version: 0.73.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) + '@earendil-works/pi-ai': + specifier: 0.74.0 + version: 0.74.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) extensions/lobster: dependencies: @@ -1193,9 +1189,9 @@ importers: extensions/ollama: dependencies: - '@mariozechner/pi-ai': - specifier: 0.73.1 - version: 0.73.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) + '@earendil-works/pi-ai': + specifier: 0.74.0 + version: 0.74.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) typebox: specifier: 1.1.38 version: 1.1.38 @@ -1212,9 +1208,9 @@ importers: extensions/openai: dependencies: - '@mariozechner/pi-ai': - specifier: 0.73.1 - version: 0.73.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) + '@earendil-works/pi-ai': + specifier: 0.74.0 + version: 0.74.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) ws: specifier: ^8.20.0 version: 8.20.0 @@ -1548,14 +1544,14 @@ importers: extensions/twitch: dependencies: '@twurple/api': - specifier: ^8.1.3 - version: 8.1.3(@twurple/auth@8.1.3) + specifier: ^8.1.4 + version: 8.1.4(@twurple/auth@8.1.4) '@twurple/auth': - specifier: ^8.1.3 - version: 8.1.3 + specifier: ^8.1.4 + version: 8.1.4 '@twurple/chat': - specifier: ^8.1.3 - version: 8.1.3(@twurple/auth@8.1.3) + specifier: ^8.1.4 + version: 8.1.4(@twurple/auth@8.1.4) zod: specifier: ^4.4.3 version: 4.4.3 @@ -1655,7 +1651,7 @@ importers: dependencies: baileys: specifier: 7.0.0-rc10 - version: 7.0.0-rc10(patch_hash=a9aea1790d2c65b1ae543c77faca4119bbfb91ee3b6ca6c38d1cad4f5702ada2)(audio-decode@2.2.3)(jimp@1.6.1)(sharp@0.34.5) + version: 7.0.0-rc10(patch_hash=a9aea1790d2c65b1ae543c77faca4119bbfb91ee3b6ca6c38d1cad4f5702ada2)(jimp@1.6.1)(sharp@0.34.5) https-proxy-agent: specifier: ^9.0.0 version: 9.0.0 @@ -1678,9 +1674,9 @@ importers: extensions/xai: dependencies: - '@mariozechner/pi-ai': - specifier: 0.73.1 - version: 0.73.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) + '@earendil-works/pi-ai': + specifier: 0.74.0 + version: 0.74.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) typebox: specifier: 1.1.38 version: 1.1.38 @@ -2325,18 +2321,28 @@ packages: '@d-fischer/typed-event-emitter@3.3.3': resolution: {integrity: sha512-OvSEOa8icfdWDqcRtjSEZtgJTFOFNgTjje7zaL0+nAtu2/kZtRCSK5wUMrI/aXtCH8o0Qz2vA8UqkhWUTARFQQ==} - '@discordjs/node-pre-gyp@0.4.5': - resolution: {integrity: sha512-YJOVVZ545x24mHzANfYoy0BJX5PDyeZlpiJjDkUBM/V/Ao7TFX9lcUvCN4nr0tbr5ubeaXxtEBILUrHtTphVeQ==} - hasBin: true - - '@discordjs/opus@0.10.0': - resolution: {integrity: sha512-HHEnSNrSPmFEyndRdQBJN2YE6egyXS9JUnJWyP6jficK0Y+qKMEZXyYTgmzpjrxXP1exM/hKaNP7BRBUEWkU5w==} - engines: {node: '>=12.0.0'} - '@discordjs/voice@0.19.2': resolution: {integrity: sha512-3yJ255e4ag3wfZu/DSxeOZK1UtnqNxnspmLaQetGT0pDkThNZoHs+Zg6dgZZ19JEVomXygvfHn9lNpICZuYtEA==} engines: {node: '>=22.12.0'} + '@earendil-works/pi-agent-core@0.74.0': + resolution: {integrity: sha512-6GMR7/wwjEJ1EsXLWEz03QOWin4AMrJ/AZoMpgm5DJ6GHsF6q6GOhQbj5Zip4dow3vo/TmBAVqM+vmGfrjGAFQ==} + engines: {node: '>=20.0.0'} + + '@earendil-works/pi-ai@0.74.0': + resolution: {integrity: sha512-7M7qcrZY/KEkH4wFkX3eqzvmKru4O88wezNKoN0KD2m4aAOmp9tdW2xCmUgSTSWlKB7b2Xw9QtAgrzHtg6t6iw==} + engines: {node: '>=20.0.0'} + hasBin: true + + '@earendil-works/pi-coding-agent@0.74.0': + resolution: {integrity: sha512-Q5GikbB5vRBrsrrf/uvet53rPSQ1sn5I5mO+l7sIobdXYpS04/X2oOc2UHFm90fNdkl3yU+ANTZL0zOtHbnqRw==} + engines: {node: '>=20.6.0'} + hasBin: true + + '@earendil-works/pi-tui@0.74.0': + resolution: {integrity: sha512-1aIfXZp7D/z+1VlZX8BZcs6pgO8rjmil7kwyhctNDsWvce3Yfl8GVgu4eq+I0Mjhr8Cj+ipBiv9CLIzdoyCOIQ==} + engines: {node: '>=20.0.0'} + '@emnapi/core@1.10.0': resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} @@ -3058,28 +3064,6 @@ packages: resolution: {integrity: sha512-D3F+UrU9CR7roJt0zDLp6Oc+4/KlLDIrN4frH+6V90SJNW2KKUec1oCQIPaaDjCqeOsQyX9dyqYbImIQIM45PA==} engines: {node: '>= 10'} - '@mariozechner/pi-agent-core@0.73.1': - resolution: {integrity: sha512-Y/KVOhuKSgRQgYBlwmRtO2gPkUcoavOSqGF9bpQIINvNZvc19k6Z1H3bFDTce3Vp5ApMmTsfLH3+tNvOg75fAQ==} - engines: {node: '>=20.0.0'} - deprecated: please use @earendil-works/pi-agent-core instead going forward - - '@mariozechner/pi-ai@0.73.1': - resolution: {integrity: sha512-Jh4lXawZYuC83HzSIYuVum9NBqJD49i4JOt3H96cGW/924cwJMOyUs1Mv/e4QPzTXnzrqMoGviNQnvGgSu1LSg==} - engines: {node: '>=20.0.0'} - deprecated: please use @earendil-works/pi-ai instead going forward - hasBin: true - - '@mariozechner/pi-coding-agent@0.73.1': - resolution: {integrity: sha512-gXQh3SaZmWTfVMc4Ao5+LGbVeKvzyO7tolok0nLsZgq9nGjZx/EEU3NM8C+qUnB4Nvs2rswG5qOVgLzQkq0fHQ==} - engines: {node: '>=20.6.0'} - deprecated: please use @earendil-works/pi-coding-agent instead going forward - hasBin: true - - '@mariozechner/pi-tui@0.73.1': - resolution: {integrity: sha512-ybVsRnUbzQRtbocltJ2OXb2QogrO67N2BlUyKjZz9BHcZYiDJtNkcKQockxDjsVvDc0uBCLDX6iZJoBElBd8fw==} - engines: {node: '>=20.0.0'} - deprecated: please use @earendil-works/pi-tui instead going forward - '@matrix-org/matrix-sdk-crypto-nodejs@0.5.1': resolution: {integrity: sha512-m1nTFhUJv8AZCvuVmZ0wgYsFaseVNMhl3Jqu18KoHs7TQa+mmAW4q3xY6MuVApd75Zu9E0ooQeA5obUZdQ24OA==} engines: {node: '>= 24'} @@ -3359,9 +3343,8 @@ packages: cpu: [x64] os: [win32] - '@openclaw/fs-safe@https://codeload.github.com/openclaw/fs-safe/tar.gz/c7ccb99d3058f2acf2ad2758ad2470c7e113a53c': - resolution: {gitHosted: true, tarball: https://codeload.github.com/openclaw/fs-safe/tar.gz/c7ccb99d3058f2acf2ad2758ad2470c7e113a53c} - version: 0.2.0 + '@openclaw/fs-safe@0.2.1': + resolution: {integrity: sha512-xFLJZHRtnxI9V5RfrPArzPXZRs5bVAbhV0x96qYKFmvyqxRwAyCdjXYLHpLHqU3uzwOGzRQFP8anAVNcfI7umA==} engines: {node: '>=20.11'} '@opentelemetry/api-logs@0.217.0': @@ -3532,9 +3515,6 @@ packages: resolution: {integrity: sha512-cifvXDhcqMwwTlTK04GBNeIe7yyo28Mfby85QXFe1Yk8nmi36Ab/5UQwptOx84SsoGNRg+EVSjwzfSZMy6pmlw==} engines: {node: '>=14'} - '@oxc-project/types@0.127.0': - resolution: {integrity: sha512-aIYXQBo4lCbO4z0R3FHeucQHpF46l2LbMdxRvqvuRuW2OxdnSkcng5B8+K12spgLDj93rtN3+J2Vac/TIO+ciQ==} - '@oxc-project/types@0.128.0': resolution: {integrity: sha512-huv1Y/LzBJkBVHt3OlC7u0zHBW9qXf1FdD7sGmc1rXc2P1mTwHssYv7jyGx5KAACSCH+9B3Bhn6Z9luHRvf7pQ==} @@ -3877,12 +3857,6 @@ packages: cpu: [arm64] os: [android] - '@rolldown/binding-android-arm64@1.0.0-rc.17': - resolution: {integrity: sha512-s70pVGhw4zqGeFnXWvAzJDlvxhlRollagdCCKRgOsgUOH3N1l0LIxf83AtGzmb5SiVM4Hjl5HyarMRfdfj3DaQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [android] - '@rolldown/binding-android-arm64@1.0.0-rc.18': resolution: {integrity: sha512-lIDyUAfD7U3+BWKzdxMbJcsYHuqXqmGz40aeRqvuAm3y5TkJSYTBW2RDrn65DJFPQqVjUAUqq5uz8urzQ8aBdQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -3895,12 +3869,6 @@ packages: cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-arm64@1.0.0-rc.17': - resolution: {integrity: sha512-4ksWc9n0mhlZpZ9PMZgTGjeOPRu8MB1Z3Tz0Mo02eWfWCHMW1zN82Qz/pL/rC+yQa+8ZnutMF0JjJe7PjwasYw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [darwin] - '@rolldown/binding-darwin-arm64@1.0.0-rc.18': resolution: {integrity: sha512-apJq2ktnGp27nSInMR5Vcj8kY6xJzDAvfdIFlpDcAK/w4cDO58qVoi1YQsES/SKiFNge/6e4CUzgjfHduYqWpQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -3913,12 +3881,6 @@ packages: cpu: [x64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.0-rc.17': - resolution: {integrity: sha512-SUSDOI6WwUVNcWxd02QEBjLdY1VPHvlEkw6T/8nYG322iYWCTxRb1vzk4E+mWWYehTp7ERibq54LSJGjmouOsw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [darwin] - '@rolldown/binding-darwin-x64@1.0.0-rc.18': resolution: {integrity: sha512-5Ofot8xbs+pxRHJqm9/9N/4sTQOvdrwEsmPE9pdLEEoAbdZtG6F2LMDfO1sp6ZAtXJuJV/21ew2srq3W8NXB5g==} engines: {node: ^20.19.0 || >=22.12.0} @@ -3931,12 +3893,6 @@ packages: cpu: [x64] os: [freebsd] - '@rolldown/binding-freebsd-x64@1.0.0-rc.17': - resolution: {integrity: sha512-hwnz3nw9dbJ05EDO/PvcjaaewqqDy7Y1rn1UO81l8iIK1GjenME75dl16ajbvSSMfv66WXSRCYKIqfgq2KCfxw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [freebsd] - '@rolldown/binding-freebsd-x64@1.0.0-rc.18': resolution: {integrity: sha512-7h8eeOTT1eyqJyx64BFCnWZpNm486hGWt2sqeLLgDxA0xI1oGZ9H7gK1S85uNGmBhkdPwa/6reTxfFFKvIsebw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -3949,12 +3905,6 @@ packages: cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.17': - resolution: {integrity: sha512-IS+W7epTcwANmFSQFrS1SivEXHtl1JtuQA9wlxrZTcNi6mx+FDOYrakGevvvTwgj2JvWiK8B29/qD9BELZPyXQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm] - os: [linux] - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.18': resolution: {integrity: sha512-eRcm/HVt9U/JFu5RKAEKwGQYtDCKWLiaH6wOnsSEp6NMBb/3Os8LgHZlNyzMpFVNmiiMFlfb2zEnebfzJrHFmg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -3968,13 +3918,6 @@ packages: os: [linux] libc: [glibc] - '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.17': - resolution: {integrity: sha512-e6usGaHKW5BMNZOymS1UcEYGowQMWcgZ71Z17Sl/h2+ZziNJ1a9n3Zvcz6LdRyIW5572wBCTH/Z+bKuZouGk9Q==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [linux] - libc: [glibc] - '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.18': resolution: {integrity: sha512-SOrT/cT4ukTmgnrEz/Hg3m7LBnuCLW9psDeMKrimRWY4I8DmnO7Lco8W2vtqPmMkbVu8iJ+g4GFLVLLOVjJ9DQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -3989,13 +3932,6 @@ packages: os: [linux] libc: [musl] - '@rolldown/binding-linux-arm64-musl@1.0.0-rc.17': - resolution: {integrity: sha512-b/CgbwAJpmrRLp02RPfhbudf5tZnN9nsPWK82znefso832etkem8H7FSZwxrOI9djcdTP7U6YfNhbRnh7djErg==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [linux] - libc: [musl] - '@rolldown/binding-linux-arm64-musl@1.0.0-rc.18': resolution: {integrity: sha512-QWjdxN1HJCpBTAcZ5N5F7wju3gVPzRzSpmGzx7na0c/1qpN9CFil+xt+l9lV/1M6/gqHSNXCiqPfwhVJPeLnug==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4010,13 +3946,6 @@ packages: os: [linux] libc: [glibc] - '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.17': - resolution: {integrity: sha512-4EII1iNGRUN5WwGbF/kOh/EIkoDN9HsupgLQoXfY+D1oyJm7/F4t5PYU5n8SWZgG0FEwakyM8pGgwcBYruGTlA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [ppc64] - os: [linux] - libc: [glibc] - '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.18': resolution: {integrity: sha512-ugCOyj7a4d9h3q9B+wXmf6g3a68UsjGh6dob5DHevHGMwDUbhsYNbSPxJsENcIttJZ9jv7qGM2UesLw5jqIhdg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4031,13 +3960,6 @@ packages: os: [linux] libc: [glibc] - '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.17': - resolution: {integrity: sha512-AH8oq3XqQo4IibpVXvPeLDI5pzkpYn0WiZAfT05kFzoJ6tQNzwRdDYQ45M8I/gslbodRZwW8uxLhbSBbkv96rA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [s390x] - os: [linux] - libc: [glibc] - '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.18': resolution: {integrity: sha512-kKWRhbsotpXkGbcd5dllUWg5gEXcDAa8u5YnP9AV5DYNbvJHGzzuwv7dpmhc8NqKMJldl0a+x76IHbspEpEmdA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4052,13 +3974,6 @@ packages: os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-gnu@1.0.0-rc.17': - resolution: {integrity: sha512-cLnjV3xfo7KslbU41Z7z8BH/E1y5mzUYzAqih1d1MDaIGZRCMqTijqLv76/P7fyHuvUcfGsIpqCdddbxLLK9rA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [linux] - libc: [glibc] - '@rolldown/binding-linux-x64-gnu@1.0.0-rc.18': resolution: {integrity: sha512-uCo8ElcCIAMyYAZyuIZ81oFkhTSIllNvUCHCAlbhlN4ji3uC28h7IIdlXyIvGO7HsuqnV9p3rD/bpH7XhIyhRw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4073,13 +3988,6 @@ packages: os: [linux] libc: [musl] - '@rolldown/binding-linux-x64-musl@1.0.0-rc.17': - resolution: {integrity: sha512-0phclDw1spsL7dUB37sIARuis2tAgomCJXAHZlpt8PXZ4Ba0dRP1e+66lsRqrfhISeN9bEGNjQs+T/Fbd7oYGw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [linux] - libc: [musl] - '@rolldown/binding-linux-x64-musl@1.0.0-rc.18': resolution: {integrity: sha512-XNOQZtuE6yUIvx4rwGemwh8kpL1xvU41FXy/s9K7T/3JVcqGzo3NfKM2HrbrGgfPYGFW42f07Wk++aOC6B9NWA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4093,12 +4001,6 @@ packages: cpu: [arm64] os: [openharmony] - '@rolldown/binding-openharmony-arm64@1.0.0-rc.17': - resolution: {integrity: sha512-0ag/hEgXOwgw4t8QyQvUCxvEg+V0KBcA6YuOx9g0r02MprutRF5dyljgm3EmR02O292UX7UeS6HzWHAl6KgyhA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [openharmony] - '@rolldown/binding-openharmony-arm64@1.0.0-rc.18': resolution: {integrity: sha512-tSn/kzrfa7tNOXr7sEacDBN4YsIqTyLqh45IO0nHDwtpKIDNDJr+VFojt+4klSpChxB29JLyduSsE0MKEwa65A==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4110,11 +4012,6 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} cpu: [wasm32] - '@rolldown/binding-wasm32-wasi@1.0.0-rc.17': - resolution: {integrity: sha512-LEXei6vo0E5wTGwpkJ4KoT3OZJRnglwldt5ziLzOlc6qqb55z4tWNq2A+PFqCJuvWWdP53CVhG1Z9NtToDPJrA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [wasm32] - '@rolldown/binding-wasm32-wasi@1.0.0-rc.18': resolution: {integrity: sha512-+J9YGmc+czgqlhYmwun3S3O0FIZhsH8ep2456xwjAdIOmuJxM7xz4P4PtrxU+Bz17a/5bqPA8o3HAAoX0teUdg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4126,12 +4023,6 @@ packages: cpu: [arm64] os: [win32] - '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.17': - resolution: {integrity: sha512-gUmyzBl3SPMa6hrqFUth9sVfcLBlYsbMzBx5PlexMroZStgzGqlZ26pYG89rBb45Mnia+oil6YAIFeEWGWhoZA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [win32] - '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.18': resolution: {integrity: sha512-zsu47DgU0FQzSwi6sU9dZoEdUv7pc1AptSEz/Z8HBg54sV0Pbs3N0+CrIbTsgiu6EyoaNN9CHboqbLaz9lhOyQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4144,12 +4035,6 @@ packages: cpu: [x64] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.0-rc.17': - resolution: {integrity: sha512-3hkiolcUAvPB9FLb3UZdfjVVNWherN1f/skkGWJP/fgSQhYUZpSIRr0/I8ZK9TkF3F7kxvJAk0+IcKvPHk9qQg==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.0-rc.18': resolution: {integrity: sha512-7H+3yqGgmnlDTRRhw/xpYY9J1kf4GC681nVc4GqKhExZTDrVVrV2tsOR9kso0fvgBdcTCcQShx4SLLoHgaLwhg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4159,9 +4044,6 @@ packages: '@rolldown/pluginutils@1.0.0': resolution: {integrity: sha512-aKs/3GSWyV0mrhNmt/96/Z3yczC3yvrzYATCiCXQebBsGyYzjNdUphRVLeJQ67ySKVXRfMxt2lm12pmXvbPFQQ==} - '@rolldown/pluginutils@1.0.0-rc.17': - resolution: {integrity: sha512-n8iosDOt6Ig1UhJ2AYqoIhHWh/isz0xpicHTzpKBeotdVsTEcxsSA/i3EVM7gQAj0rU27OLAxCjzlj15IWY7bg==} - '@rolldown/pluginutils@1.0.0-rc.18': resolution: {integrity: sha512-CUY5Mnhe64xQBGZEEXQ5WyZwsc1JU3vAZLIxtrsBt3LO6UOb+C8GunVKqe9sT8NeWb4lqSaoJtp2xo6GxT1MNw==} @@ -4546,14 +4428,6 @@ packages: resolution: {integrity: sha512-3nQ2mdyzPRKpBHjd3QiKZDwNzw1F7fBN+rSq8Xms2gg+JWZR4SY2Zdf+doqTyXdyVjG4Y0QM7IA4U42zT9xxzw==} engines: {node: '>=18.0.0'} - '@thi.ng/bitstream@2.4.48': - resolution: {integrity: sha512-s17d5i8xlPC8+/YEyFVzwTNSvaQxr/QCpqUtGVtrDnp+cKQnb7HMXnOvrLGUYCpWtweSVFzFCWp20xjU9xh2IA==} - engines: {node: '>=18'} - - '@thi.ng/errors@2.6.10': - resolution: {integrity: sha512-UYgdHPjJOaEct0kfURpaSzlyU18VDMg+HQ2csG3O+eBWyh/lUq3X1+gxN7/5y1xjp4pHyNd7iVvLklJZTFkTqA==} - engines: {node: '>=18'} - '@tloncorp/tlon-skill-darwin-arm64@0.3.6': resolution: {integrity: sha512-vR6OeFsIGg9K1QVG2ZZaMC+8QuTyoEp0mGwEJPCooMXF2FxAHTzAE99CNgTmNZbCkCDXIsCL9jMJTcfUNr6xyA==} cpu: [arm64] @@ -4592,24 +4466,24 @@ packages: '@tootallnate/quickjs-emscripten@0.23.0': resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} - '@twurple/api-call@8.1.3': - resolution: {integrity: sha512-eKIoIRHyPsyJwCOpofE+/J+C5O+bPnxtq3bPUzMsS4EzZOF268WocbkaKLW1Fh3tepyxj3TvTNxEvKA6jbJr0A==} + '@twurple/api-call@8.1.4': + resolution: {integrity: sha512-qh2TpdxxyiSkwadcCSes6uBHQB6l4Fz8sVfmzk+Brb12asemHMXTEyQAdrMJT7LlgtZq01nr+RASzWM3jmGtkw==} - '@twurple/api@8.1.3': - resolution: {integrity: sha512-DTa/VX+h7kciDz3ZBQmrpVy1nPIepRMv4BtldaXKfDERlXRQBt4V2d6KfNn/hdUkRkxJ2Xi8x4PfBFE79VSrBw==} + '@twurple/api@8.1.4': + resolution: {integrity: sha512-UA2eg5lyZRB0w55NjGvdhSmWPyIBaOthFKGPjg3L/jCQVYnY/FcmUuPipe2Op9U4Ej99c29cdjsmTSQI7P7Vqg==} peerDependencies: - '@twurple/auth': 8.1.3 + '@twurple/auth': 8.1.4 - '@twurple/auth@8.1.3': - resolution: {integrity: sha512-UklOtXzQUnZskFsvt3h3kmkjXsILqNXe4NCMR1SYPicsYVnVMElS1uMiVI/H5mzJhVR5MFx5wQQyI15b5YtBxw==} + '@twurple/auth@8.1.4': + resolution: {integrity: sha512-ylsJoPInCw9BwOqxKcx+1k2ce9QG3vJpKFzPdIyHh49HvM/ulQZ0CAGysydugDYXF0iO/TGryh7PluSwx5fIwA==} - '@twurple/chat@8.1.3': - resolution: {integrity: sha512-BTamweCTlv8Bdkx1um0dSn0sDXBm3CX4js0GbatWPsX6mrMWljny2pQgIj+PSkTtHfsR4fmGEIayAticEydxnQ==} + '@twurple/chat@8.1.4': + resolution: {integrity: sha512-654LU7BwEpR7lLnWaVMgHtd7wMsaQo71GPTrFZ5ChS283d7B7GTe+9RJ5SxNliNxB5Xn0+R3R3M5HJlUOGYNeA==} peerDependencies: - '@twurple/auth': 8.1.3 + '@twurple/auth': 8.1.4 - '@twurple/common@8.1.3': - resolution: {integrity: sha512-B2BT42fJAEYqSPGjTd6qyZoUv6kgFzIvUJuTIrOUcBiJxcvZh8tD+WLRd5xfMKhtLbUFgesYlHxdPhmdar8/zw==} + '@twurple/common@8.1.4': + resolution: {integrity: sha512-1iN5DvOnW+g+Nl3OTI5zUJHgAfjmPCb50HpKsAFik6OYQEAHLsscQKgTOJ+KRuFBYepo/JkHsOWOmWhXxnK6lQ==} '@tybys/wasm-util@0.10.2': resolution: {integrity: sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==} @@ -4838,15 +4712,6 @@ packages: '@wasm-audio-decoders/common@9.0.7': resolution: {integrity: sha512-WRaUuWSKV7pkttBygml/a6dIEpatq2nnZGFIoPTc5yPLkxL6Wk4YaslPM98OPQvWacvNZ+Py9xROGDtrFBDzag==} - '@wasm-audio-decoders/flac@0.2.10': - resolution: {integrity: sha512-YfcyoD2rYRBa6ffawZKNi5qvV5HArJmNmuMVUPoutuZ2hhGi6WNSWIzgvbROGmPbFivLL764Am7xxJENWJDhjw==} - - '@wasm-audio-decoders/ogg-vorbis@0.1.20': - resolution: {integrity: sha512-zaQPasU5usRjUDXtXOHYED5tfkR4QMXd+EH3Nrz1+4+M5pCsdD+s9YxJqb0oqnTyRu/KUujOmu5Z/m/NT47vwg==} - - '@wasm-audio-decoders/opus-ml@0.0.2': - resolution: {integrity: sha512-58rWEqDGg+CKCyEeKm2KoxxSwTWtHh/NLTW9ObR4K8CGF6VwuuGudEI1CtniS/oSRmL1nJq/eh8MKARiluw4DQ==} - '@whiskeysockets/libsignal-node@https://codeload.github.com/whiskeysockets/libsignal-node/tar.gz/1c30d7d7e76a3b0aa120b04dc6a26f5a12dccf67': resolution: {gitHosted: true, tarball: https://codeload.github.com/whiskeysockets/libsignal-node/tar.gz/1c30d7d7e76a3b0aa120b04dc6a26f5a12dccf67} version: 2.0.1 @@ -4891,9 +4756,6 @@ packages: resolution: {integrity: sha512-IT9Zh9YDsRfXnc+RN9T00OCBFZrvQxzsWARWL9C1f0do4xB67eCZGildkJCHjoXmGAyYn1V7rIdRR6/+PzDdmw==} hasBin: true - abbrev@1.1.1: - resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} - abort-controller@3.0.0: resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} engines: {node: '>=6.5'} @@ -4927,10 +4789,6 @@ packages: engines: {node: '>=22.12.0'} hasBin: true - agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} - agent-base@7.1.4: resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} engines: {node: '>= 14'} @@ -4979,14 +4837,6 @@ packages: resolution: {integrity: sha512-v/ShMp57iBnBp4lDgV8Jx3d3Q5/Hac25FWmQ98eMahUiHPXcvwIMKJD0hBIgclm/FCG+LwPkAKtkRO1O/W0YGg==} hasBin: true - aproba@2.1.0: - resolution: {integrity: sha512-tLIEcj5GuR2RSTnxNKdkK0dJ/GrC7P38sUkiDmDuHfsHmbagTFAxDVIBltoklXEVIQ/f14IL8IMJ5pn9Hez1Ew==} - - are-we-there-yet@2.0.0: - resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} - engines: {node: '>=10'} - deprecated: This package is no longer supported. - argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} @@ -5036,16 +4886,6 @@ packages: resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} engines: {node: '>=8.0.0'} - audio-buffer@5.0.0: - resolution: {integrity: sha512-gsDyj1wwUp8u7NBB+eW6yhLb9ICf+0eBmDX8NGaAS00w8/fLqFdxUlL5Ge/U8kB64DlQhdonxYC59dXy1J7H/w==} - - audio-decode@2.2.3: - resolution: {integrity: sha512-Z0lHvMayR/Pad9+O9ddzaBJE0DrhZkQlStrC1RwcAHF3AhQAsdwKHeLGK8fYKyp2DDU6xHxzGb4CLMui12yVrg==} - - audio-type@2.4.1: - resolution: {integrity: sha512-dK9Z/P83C/rBfTrXXgPD3jZ+aXxx2o/P4rq8+H1JqxbXklitEeJw4CrcwMC5CkON3CX3yy2gaWnIEVYejYh0zQ==} - engines: {node: '>=14'} - await-to-js@3.0.0: resolution: {integrity: sha512-zJAaP9zxTcvTHRlejau3ZOY4V7SRpiByf3/dxx2uyKxxor19tpmpV2QRsTKikckwhaPmr2dVpxxMr7jOCYVp5g==} engines: {node: '>=6.0.0'} @@ -5294,9 +5134,6 @@ packages: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} - codec-parser@2.5.0: - resolution: {integrity: sha512-Ru9t80fV8B0ZiixQl8xhMTLru+dzuis/KQld32/x5T/+3LwZb0/YvQdSKytX9JqCnRdiupvAvyYJINKrXieziQ==} - collapse-white-space@2.1.0: resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} @@ -5307,10 +5144,6 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - color-support@1.1.3: - resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} - hasBin: true - colors@1.4.0: resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==} engines: {node: '>=0.1.90'} @@ -5338,9 +5171,6 @@ packages: resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} engines: {node: '>= 6'} - console-control-strings@1.1.0: - resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} - constantinople@4.0.1: resolution: {integrity: sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==} @@ -5473,9 +5303,6 @@ packages: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} - delegates@1.0.0: - resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} - depd@2.0.0: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} @@ -5820,9 +5647,6 @@ packages: resolution: {integrity: sha512-eKpRKAovdpZtR1WopLHxlBWvAgPny3c4gX1G5Jhwmmw4XJj0ifSD5qB5TOo8hmA0wlRKDAOAhEE1yVPgs6Fgcg==} engines: {node: '>=14.14'} - fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - fsevents@2.3.2: resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -5836,11 +5660,6 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - gauge@3.0.2: - resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} - engines: {node: '>=10'} - deprecated: This package is no longer supported. - gaxios@6.7.1: resolution: {integrity: sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==} engines: {node: '>=14'} @@ -5903,10 +5722,6 @@ packages: resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} engines: {node: 18 || 20 || >=22} - glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me - global-agent@4.1.3: resolution: {integrity: sha512-KUJEViiuFT3I97t+GYMikLPJS2Lfo/S2F+DQuBWzuzaMPnvt5yyZePzArx36fBzpGTxZjIpDbXLeySLgh+k76g==} engines: {node: '>=10.0'} @@ -5965,9 +5780,6 @@ packages: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} - has-unicode@2.0.1: - resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} - hashery@1.5.1: resolution: {integrity: sha512-iZyKG96/JwPz1N55vj2Ie2vXbhu440zfUfJvSwEqEbeLluk7NnapfGqa7LH0mOsnDxTF85Mx8/dyR6HfqcbmbQ==} engines: {node: '>=20'} @@ -6040,10 +5852,6 @@ packages: resolution: {integrity: sha512-JrF8SSLVmcvc5NducxgyOrKXe3EsyHMgBFgSaIUGmArKe+rwr0uphRkRXvwiom3I+fpIfoItveHrfudL8/rxuA==} engines: {node: '>=16'} - https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} - https-proxy-agent@7.0.6: resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} @@ -6081,10 +5889,6 @@ packages: resolution: {integrity: sha512-NkJQA7oZ4YHQhd2+H3BoRFKF3d/XNsiKpHZCQEMH9pDX27hQQLsTyOocyRgaIVtf8gHX3Nt3LPkR4e5EdtPAGQ==} engines: {node: ^22.18.0 || >=24.0.0} - inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. - inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} @@ -6493,10 +6297,6 @@ packages: magicast@0.5.2: resolution: {integrity: sha512-E3ZJh4J3S9KfwdjZhe2afj6R9lGIN5Pher1pF39UGrXRqq/VDaGVIGN13BjHd2u8B61hArAGOnso7nBOouW3TQ==} - make-dir@3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} - make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} @@ -6793,15 +6593,6 @@ packages: resolution: {integrity: sha512-tGnJW6OKRii9u/b2WiUViTJS+h7Apxx17qsMUjsUeNDiMMX5ZFf8F8Fcz7PAQ6omvOxHZtvDTmOYKJQwmfpjeg==} engines: {node: '>=20'} - node-wav@0.0.2: - resolution: {integrity: sha512-M6Rm/bbG6De/gKGxOpeOobx/dnGuP0dz40adqx38boqHhlWssBJZgLCPBNtb9NkrmnKYiV04xELq+R6PFOnoLA==} - engines: {node: '>=4.4.0'} - - nopt@5.0.0: - resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} - engines: {node: '>=6'} - hasBin: true - nostr-tools@2.23.3: resolution: {integrity: sha512-AALyt9k8xPdF4UV2mlLJ2mgCn4kpTB0DZ8t2r6wjdUh6anfx2cTVBsHUlo9U0EY/cKC5wcNyiMAmRJV5OVEalA==} peerDependencies: @@ -6817,10 +6608,6 @@ packages: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} - npmlog@5.0.1: - resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} - deprecated: This package is no longer supported. - nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} @@ -6839,9 +6626,6 @@ packages: obug@2.1.1: resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==} - ogg-opus-decoder@1.7.3: - resolution: {integrity: sha512-w47tiZpkLgdkpa+34VzYD8mHUj8I9kfWVZa82mBbNwDvB1byfLXSSzW/HxA4fI3e9kVlICSpXGFwMLV1LPdjwg==} - oidc-client-ts@3.5.0: resolution: {integrity: sha512-l2q8l9CTCTOlbX+AnK4p3M+4CEpKpyQhle6blQkdFhm0IsBqsxm15bYaSa11G7pWdsYr6epdsRZxJpCyCRbT8A==} engines: {node: '>=18'} @@ -6903,9 +6687,6 @@ packages: engines: {node: '>=18'} hasBin: true - opus-decoder@0.7.11: - resolution: {integrity: sha512-+e+Jz3vGQLxRTBHs8YJQPRPc1Tr+/aC6coV/DlZylriA29BdHQAYXhvNRKtjftof17OFng0+P4wsFIqQu3a48A==} - opusscript@0.1.1: resolution: {integrity: sha512-mL0fZZOUnXdZ78woRXp18lApwpp0lF5tozJOD1Wut0dgrA9WuQTgSels/CSmFleaAZrJi/nci5KOVtbuxeWoQA==} @@ -7035,10 +6816,6 @@ packages: 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'} - path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} @@ -7231,9 +7008,6 @@ packages: resolution: {integrity: sha512-+Owyggi9IxT1ePKGafcI87ubSmxol6smwJ+RAHDQlx9+9cPwFWDiKFFCPuWhr9ignlGpZ9vDQLw67N4dcTVFEA==} engines: {node: '>=20'} - qoa-format@1.0.1: - resolution: {integrity: sha512-dMB0Z6XQjdpz/Cw4Rf6RiBpQvUSPCfYlQMWvmuWlWkAT7nDQD29cVZ1SwDUB6DYJSitHENwbt90lqfI+7bvMcw==} - qrcode-terminal@0.12.0: resolution: {integrity: sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==} hasBin: true @@ -7282,10 +7056,6 @@ packages: readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - readdirp@5.0.0: resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==} engines: {node: '>= 20.19.0'} @@ -7374,11 +7144,6 @@ packages: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - rolldown-plugin-dts@0.25.0: resolution: {integrity: sha512-GE3uDZgUuA9l6g+1u928TRmadd5IVhaWiwpWast2kCyLv9tYJJCC6E5HHkV0HGmwC5ZL73xh12/PRZI+KZ2vdQ==} engines: {node: ^22.18.0 || >=24.0.0} @@ -7403,11 +7168,6 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} hasBin: true - rolldown@1.0.0-rc.17: - resolution: {integrity: sha512-ZrT53oAKrtA4+YtBWPQbtPOxIbVDbxT0orcYERKd63VJTF13zPcgXTvD4843L8pcsI7M6MErt8QtON6lrB9tyA==} - engines: {node: ^20.19.0 || >=22.12.0} - hasBin: true - rolldown@1.0.0-rc.18: resolution: {integrity: sha512-phmyKBpuBdRYDf4hgyynGAYn/rDDe+iZXKVJ7WX5b1zQzpLkP5oJRPGsfJuHdzPMlyyEO/4sPW6yfSx2gf7lVg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -7459,10 +7219,6 @@ packages: resolution: {integrity: sha512-gfYVRGxjHkGF2NPeUWHw5u6T/KGFtS5/drPms73gaSuMaVHKCY3lpLnGDfswVQO0kddeePoti09AwhYP4zA8dQ==} hasBin: true - semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - semver@7.8.0: resolution: {integrity: sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==} engines: {node: '>=10'} @@ -7652,9 +7408,6 @@ packages: string_decoder@1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - stringify-entities@4.0.4: resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} @@ -7944,16 +7697,6 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} - unrun@0.2.37: - resolution: {integrity: sha512-AA7vDuYsgeSYVzJMm16UKA+aXFKhy7nFqW9z5l7q44K4ppFWZAMqYS58ePRZbugMLPH0fwwMzD5A8nP0avxwZQ==} - engines: {node: '>=20.19.0'} - hasBin: true - peerDependencies: - synckit: ^0.11.11 - peerDependenciesMeta: - synckit: - optional: true - url-parse@1.5.10: resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} @@ -8115,9 +7858,6 @@ packages: engines: {node: '>=8'} hasBin: true - wide-align@1.1.5: - resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} - win-guid@0.2.1: resolution: {integrity: sha512-gEIQU4mkgl2OPeoNrWflcJFJ3Ae2BPd4eCsHHA/XikslkIVms/nHhvnvzIZV7VLmBvtFlDOzLt9rrZT+n6D67A==} @@ -9306,37 +9046,12 @@ snapshots: dependencies: tslib: 2.8.1 - '@discordjs/node-pre-gyp@0.4.5': - dependencies: - detect-libc: 2.1.2 - https-proxy-agent: 5.0.1 - make-dir: 3.1.0 - node-fetch: 2.7.0 - nopt: 5.0.0 - npmlog: 5.0.1 - rimraf: 3.0.2 - semver: 7.8.0 - tar: 7.5.15 - transitivePeerDependencies: - - encoding - - supports-color - optional: true - - '@discordjs/opus@0.10.0': - dependencies: - '@discordjs/node-pre-gyp': 0.4.5 - node-addon-api: 8.7.0 - transitivePeerDependencies: - - encoding - - supports-color - optional: true - - '@discordjs/voice@0.19.2(@discordjs/opus@0.10.0)(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(opusscript@0.1.1)': + '@discordjs/voice@0.19.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(opusscript@0.1.1)': dependencies: '@snazzah/davey': 0.1.11(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) '@types/ws': 8.18.1 discord-api-types: 0.38.47 - prism-media: 1.3.5(@discordjs/opus@0.10.0)(opusscript@0.1.1) + prism-media: 1.3.5(opusscript@0.1.1) tslib: 2.8.1 ws: 8.20.0 transitivePeerDependencies: @@ -9349,6 +9064,85 @@ snapshots: - opusscript - utf-8-validate + '@earendil-works/pi-agent-core@0.74.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3)': + dependencies: + '@earendil-works/pi-ai': 0.74.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) + typebox: 1.1.38 + transitivePeerDependencies: + - '@modelcontextprotocol/sdk' + - aws-crt + - bufferutil + - supports-color + - utf-8-validate + - ws + - zod + + '@earendil-works/pi-ai@0.74.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3)': + dependencies: + '@anthropic-ai/sdk': 0.95.1(zod@4.4.3) + '@aws-sdk/client-bedrock-runtime': 3.1045.0 + '@google/genai': 1.52.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3)) + '@mistralai/mistralai': 2.2.1 + chalk: 5.6.2 + openai: 6.26.0(ws@8.20.0)(zod@4.4.3) + partial-json: 0.1.7 + proxy-agent: 6.5.0 + typebox: 1.1.38 + undici: 7.25.0 + zod-to-json-schema: 3.25.2(zod@4.4.3) + transitivePeerDependencies: + - '@modelcontextprotocol/sdk' + - aws-crt + - bufferutil + - supports-color + - utf-8-validate + - ws + - zod + + '@earendil-works/pi-coding-agent@0.74.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3)': + dependencies: + '@earendil-works/pi-agent-core': 0.74.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) + '@earendil-works/pi-ai': 0.74.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) + '@earendil-works/pi-tui': 0.74.0 + '@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: 22.0.1 + glob: 13.0.6 + hosted-git-info: 9.0.3 + ignore: 7.0.5 + jiti: 2.7.0 + marked: 15.0.12 + minimatch: 10.2.5 + proper-lockfile: 4.1.2 + strip-ansi: 7.2.0 + typebox: 1.1.38 + undici: 7.25.0 + 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 + + '@earendil-works/pi-tui@0.74.0': + dependencies: + '@types/mime-types': 2.1.4 + chalk: 5.6.2 + get-east-asian-width: 1.6.0 + marked: 15.0.12 + mime-types: 3.0.2 + optionalDependencies: + koffi: 2.16.2 + '@emnapi/core@1.10.0': dependencies: '@emnapi/wasi-threads': 1.2.1 @@ -10042,85 +9836,6 @@ snapshots: '@mariozechner/clipboard-win32-x64-msvc': 0.3.2 optional: true - '@mariozechner/pi-agent-core@0.73.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3)': - dependencies: - '@mariozechner/pi-ai': 0.73.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) - typebox: 1.1.38 - transitivePeerDependencies: - - '@modelcontextprotocol/sdk' - - aws-crt - - bufferutil - - supports-color - - utf-8-validate - - ws - - zod - - '@mariozechner/pi-ai@0.73.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3)': - dependencies: - '@anthropic-ai/sdk': 0.95.1(zod@4.4.3) - '@aws-sdk/client-bedrock-runtime': 3.1045.0 - '@google/genai': 1.52.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3)) - '@mistralai/mistralai': 2.2.1 - chalk: 5.6.2 - openai: 6.26.0(ws@8.20.0)(zod@4.4.3) - partial-json: 0.1.7 - proxy-agent: 6.5.0 - typebox: 1.1.38 - undici: 7.25.0 - zod-to-json-schema: 3.25.2(zod@4.4.3) - transitivePeerDependencies: - - '@modelcontextprotocol/sdk' - - aws-crt - - bufferutil - - supports-color - - utf-8-validate - - ws - - zod - - '@mariozechner/pi-coding-agent@0.73.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3)': - dependencies: - '@mariozechner/pi-agent-core': 0.73.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) - '@mariozechner/pi-ai': 0.73.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) - '@mariozechner/pi-tui': 0.73.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: 22.0.1 - glob: 13.0.6 - hosted-git-info: 9.0.3 - ignore: 7.0.5 - jiti: 2.7.0 - marked: 15.0.12 - minimatch: 10.2.5 - proper-lockfile: 4.1.2 - strip-ansi: 7.2.0 - typebox: 1.1.38 - undici: 7.25.0 - 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.73.1': - dependencies: - '@types/mime-types': 2.1.4 - chalk: 5.6.2 - get-east-asian-width: 1.6.0 - marked: 15.0.12 - mime-types: 3.0.2 - optionalDependencies: - koffi: 2.16.2 - '@matrix-org/matrix-sdk-crypto-nodejs@0.5.1': dependencies: https-proxy-agent: 7.0.6 @@ -10388,7 +10103,7 @@ snapshots: '@openai/codex@0.130.0-win32-x64': optional: true - '@openclaw/fs-safe@https://codeload.github.com/openclaw/fs-safe/tar.gz/c7ccb99d3058f2acf2ad2758ad2470c7e113a53c': + '@openclaw/fs-safe@0.2.1': optionalDependencies: jszip: 3.10.1 tar: 7.5.15 @@ -10631,9 +10346,6 @@ snapshots: '@opentelemetry/semantic-conventions@1.40.0': {} - '@oxc-project/types@0.127.0': - optional: true - '@oxc-project/types@0.128.0': {} '@oxc-project/types@0.129.0': {} @@ -10821,108 +10533,72 @@ snapshots: '@rolldown/binding-android-arm64@1.0.0': optional: true - '@rolldown/binding-android-arm64@1.0.0-rc.17': - optional: true - '@rolldown/binding-android-arm64@1.0.0-rc.18': optional: true '@rolldown/binding-darwin-arm64@1.0.0': optional: true - '@rolldown/binding-darwin-arm64@1.0.0-rc.17': - optional: true - '@rolldown/binding-darwin-arm64@1.0.0-rc.18': optional: true '@rolldown/binding-darwin-x64@1.0.0': optional: true - '@rolldown/binding-darwin-x64@1.0.0-rc.17': - optional: true - '@rolldown/binding-darwin-x64@1.0.0-rc.18': optional: true '@rolldown/binding-freebsd-x64@1.0.0': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-rc.17': - optional: true - '@rolldown/binding-freebsd-x64@1.0.0-rc.18': optional: true '@rolldown/binding-linux-arm-gnueabihf@1.0.0': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.17': - optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.18': optional: true '@rolldown/binding-linux-arm64-gnu@1.0.0': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.17': - optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.18': optional: true '@rolldown/binding-linux-arm64-musl@1.0.0': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-rc.17': - optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-rc.18': optional: true '@rolldown/binding-linux-ppc64-gnu@1.0.0': optional: true - '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.17': - optional: true - '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.18': optional: true '@rolldown/binding-linux-s390x-gnu@1.0.0': optional: true - '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.17': - optional: true - '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.18': optional: true '@rolldown/binding-linux-x64-gnu@1.0.0': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-rc.17': - optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-rc.18': optional: true '@rolldown/binding-linux-x64-musl@1.0.0': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-rc.17': - optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-rc.18': optional: true '@rolldown/binding-openharmony-arm64@1.0.0': optional: true - '@rolldown/binding-openharmony-arm64@1.0.0-rc.17': - optional: true - '@rolldown/binding-openharmony-arm64@1.0.0-rc.18': optional: true @@ -10933,13 +10609,6 @@ snapshots: '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-rc.17': - dependencies: - '@emnapi/core': 1.10.0 - '@emnapi/runtime': 1.10.0 - '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) - optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-rc.18': dependencies: '@emnapi/core': 1.10.0 @@ -10950,26 +10619,17 @@ snapshots: '@rolldown/binding-win32-arm64-msvc@1.0.0': optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.17': - optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.18': optional: true '@rolldown/binding-win32-x64-msvc@1.0.0': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-rc.17': - optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-rc.18': optional: true '@rolldown/pluginutils@1.0.0': {} - '@rolldown/pluginutils@1.0.0-rc.17': - optional: true - '@rolldown/pluginutils@1.0.0-rc.18': {} '@scure/base@2.0.0': {} @@ -11504,14 +11164,6 @@ snapshots: dependencies: qrcode-terminal: 0.12.0 - '@thi.ng/bitstream@2.4.48': - dependencies: - '@thi.ng/errors': 2.6.10 - optional: true - - '@thi.ng/errors@2.6.10': - optional: true - '@tloncorp/tlon-skill-darwin-arm64@0.3.6': optional: true @@ -11542,13 +11194,13 @@ snapshots: '@tootallnate/quickjs-emscripten@0.23.0': {} - '@twurple/api-call@8.1.3': + '@twurple/api-call@8.1.4': dependencies: '@d-fischer/shared-utils': 3.6.4 - '@twurple/common': 8.1.3 + '@twurple/common': 8.1.4 tslib: 2.8.1 - '@twurple/api@8.1.3(@twurple/auth@8.1.3)': + '@twurple/api@8.1.4(@twurple/auth@8.1.4)': dependencies: '@d-fischer/cache-decorators': 4.0.1 '@d-fischer/detect-node': 3.0.1 @@ -11556,22 +11208,22 @@ snapshots: '@d-fischer/rate-limiter': 1.1.0 '@d-fischer/shared-utils': 3.6.4 '@d-fischer/typed-event-emitter': 3.3.3 - '@twurple/api-call': 8.1.3 - '@twurple/auth': 8.1.3 - '@twurple/common': 8.1.3 + '@twurple/api-call': 8.1.4 + '@twurple/auth': 8.1.4 + '@twurple/common': 8.1.4 retry: 0.13.1 tslib: 2.8.1 - '@twurple/auth@8.1.3': + '@twurple/auth@8.1.4': dependencies: '@d-fischer/logger': 4.2.4 '@d-fischer/shared-utils': 3.6.4 '@d-fischer/typed-event-emitter': 3.3.3 - '@twurple/api-call': 8.1.3 - '@twurple/common': 8.1.3 + '@twurple/api-call': 8.1.4 + '@twurple/common': 8.1.4 tslib: 2.8.1 - '@twurple/chat@8.1.3(@twurple/auth@8.1.3)': + '@twurple/chat@8.1.4(@twurple/auth@8.1.4)': dependencies: '@d-fischer/cache-decorators': 4.0.1 '@d-fischer/deprecate': 2.0.2 @@ -11579,15 +11231,15 @@ snapshots: '@d-fischer/rate-limiter': 1.1.0 '@d-fischer/shared-utils': 3.6.4 '@d-fischer/typed-event-emitter': 3.3.3 - '@twurple/auth': 8.1.3 - '@twurple/common': 8.1.3 + '@twurple/auth': 8.1.4 + '@twurple/common': 8.1.4 ircv3: 0.33.1 tslib: 2.8.1 transitivePeerDependencies: - bufferutil - utf-8-validate - '@twurple/common@8.1.3': + '@twurple/common@8.1.4': dependencies: '@d-fischer/shared-utils': 3.6.4 klona: 2.0.6 @@ -11856,23 +11508,6 @@ snapshots: '@eshaz/web-worker': 1.2.2 simple-yenc: 1.0.4 - '@wasm-audio-decoders/flac@0.2.10': - dependencies: - '@wasm-audio-decoders/common': 9.0.7 - codec-parser: 2.5.0 - optional: true - - '@wasm-audio-decoders/ogg-vorbis@0.1.20': - dependencies: - '@wasm-audio-decoders/common': 9.0.7 - codec-parser: 2.5.0 - optional: true - - '@wasm-audio-decoders/opus-ml@0.0.2': - dependencies: - '@wasm-audio-decoders/common': 9.0.7 - optional: true - '@whiskeysockets/libsignal-node@https://codeload.github.com/whiskeysockets/libsignal-node/tar.gz/1c30d7d7e76a3b0aa120b04dc6a26f5a12dccf67': dependencies: curve25519-js: 0.0.4 @@ -11905,9 +11540,6 @@ snapshots: '@zed-industries/codex-acp-win32-arm64': 0.14.0 '@zed-industries/codex-acp-win32-x64': 0.14.0 - abbrev@1.1.1: - optional: true - abort-controller@3.0.0: dependencies: event-target-shim: 5.0.1 @@ -11941,13 +11573,6 @@ snapshots: - bare-buffer - react-native-b4a - agent-base@6.0.2: - dependencies: - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - optional: true - agent-base@7.1.4: {} agent-base@9.0.0: {} @@ -11991,15 +11616,6 @@ snapshots: json-bignum: 0.0.3 tslib: 2.8.1 - aproba@2.1.0: - optional: true - - are-we-there-yet@2.0.0: - dependencies: - delegates: 1.0.0 - readable-stream: 3.6.2 - optional: true - argparse@2.0.1: {} array-back@3.1.0: {} @@ -12045,24 +11661,6 @@ snapshots: atomic-sleep@1.0.0: {} - audio-buffer@5.0.0: - optional: true - - audio-decode@2.2.3: - dependencies: - '@wasm-audio-decoders/flac': 0.2.10 - '@wasm-audio-decoders/ogg-vorbis': 0.1.20 - audio-buffer: 5.0.0 - audio-type: 2.4.1 - mpg123-decoder: 1.0.3 - node-wav: 0.0.2 - ogg-opus-decoder: 1.7.3 - qoa-format: 1.0.1 - optional: true - - audio-type@2.4.1: - optional: true - await-to-js@3.0.0: {} axios@1.16.0: @@ -12083,7 +11681,7 @@ snapshots: bail@2.0.2: {} - baileys@7.0.0-rc10(patch_hash=a9aea1790d2c65b1ae543c77faca4119bbfb91ee3b6ca6c38d1cad4f5702ada2)(audio-decode@2.2.3)(jimp@1.6.1)(sharp@0.34.5): + baileys@7.0.0-rc10(patch_hash=a9aea1790d2c65b1ae543c77faca4119bbfb91ee3b6ca6c38d1cad4f5702ada2)(jimp@1.6.1)(sharp@0.34.5): dependencies: '@cacheable/node-cache': 1.7.6 '@hapi/boom': 9.1.4 @@ -12098,7 +11696,6 @@ snapshots: whatsapp-rust-bridge: 0.5.3 ws: 8.20.0 optionalDependencies: - audio-decode: 2.2.3 jimp: 1.6.1 transitivePeerDependencies: - bufferutil @@ -12305,9 +11902,6 @@ snapshots: strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - codec-parser@2.5.0: - optional: true - collapse-white-space@2.1.0: {} color-convert@2.0.1: @@ -12316,9 +11910,6 @@ snapshots: color-name@1.1.4: {} - color-support@1.1.3: - optional: true - colors@1.4.0: {} combined-stream@1.0.8: @@ -12345,9 +11936,6 @@ snapshots: commander@5.1.0: {} - console-control-strings@1.1.0: - optional: true - constantinople@4.0.1: dependencies: '@babel/parser': 7.29.3 @@ -12464,9 +12052,6 @@ snapshots: delayed-stream@1.0.0: {} - delegates@1.0.0: - optional: true - depd@2.0.0: {} dequal@2.0.3: {} @@ -12857,9 +12442,6 @@ snapshots: jsonfile: 6.2.1 universalify: 2.0.1 - fs.realpath@1.0.0: - optional: true - fsevents@2.3.2: optional: true @@ -12868,19 +12450,6 @@ snapshots: function-bind@1.1.2: {} - gauge@3.0.2: - dependencies: - aproba: 2.1.0 - color-support: 1.1.3 - console-control-strings: 1.1.0 - has-unicode: 2.0.1 - object-assign: 4.1.1 - signal-exit: 3.0.7 - string-width: 4.2.3 - strip-ansi: 6.0.1 - wide-align: 1.1.5 - optional: true - gaxios@6.7.1: dependencies: extend: 3.0.2 @@ -12982,16 +12551,6 @@ snapshots: minipass: 7.1.3 path-scurry: 2.0.2 - glob@7.2.3: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 10.2.5 - once: 1.4.0 - path-is-absolute: 1.0.1 - optional: true - global-agent@4.1.3: dependencies: globalthis: 1.0.4 @@ -13067,9 +12626,6 @@ snapshots: dependencies: has-symbols: 1.1.0 - has-unicode@2.0.1: - optional: true - hashery@1.5.1: dependencies: hookified: 1.15.1 @@ -13194,14 +12750,6 @@ snapshots: http_ece@1.2.0: {} - https-proxy-agent@5.0.1: - dependencies: - agent-base: 6.0.2 - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - optional: true - https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.4 @@ -13241,12 +12789,6 @@ snapshots: import-without-cache@0.4.0: {} - inflight@1.0.6: - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - optional: true - inherits@2.0.4: {} inline-style-parser@0.2.7: {} @@ -13679,11 +13221,6 @@ snapshots: '@babel/types': 7.29.0 source-map-js: 1.2.1 - make-dir@3.1.0: - dependencies: - semver: 6.3.1 - optional: true - make-dir@4.0.0: dependencies: semver: 7.8.0 @@ -14160,14 +13697,6 @@ snapshots: '@types/sarif': 2.1.7 fs-extra: 11.3.5 - node-wav@0.0.2: - optional: true - - nopt@5.0.0: - dependencies: - abbrev: 1.1.1 - optional: true - nostr-tools@2.23.3(typescript@6.0.3): dependencies: '@noble/ciphers': 2.1.1 @@ -14186,14 +13715,6 @@ snapshots: dependencies: path-key: 3.1.1 - npmlog@5.0.1: - dependencies: - are-we-there-yet: 2.0.0 - console-control-strings: 1.1.0 - gauge: 3.0.2 - set-blocking: 2.0.0 - optional: true - nth-check@2.1.1: dependencies: boolbase: 1.0.0 @@ -14206,14 +13727,6 @@ snapshots: obug@2.1.1: {} - ogg-opus-decoder@1.7.3: - dependencies: - '@wasm-audio-decoders/common': 9.0.7 - '@wasm-audio-decoders/opus-ml': 0.0.2 - codec-parser: 2.5.0 - opus-decoder: 0.7.11 - optional: true - oidc-client-ts@3.5.0: dependencies: jwt-decode: 4.0.0 @@ -14267,11 +13780,6 @@ snapshots: - encoding - supports-color - opus-decoder@0.7.11: - dependencies: - '@wasm-audio-decoders/common': 9.0.7 - optional: true - opusscript@0.1.1: {} oxfmt@0.48.0: @@ -14449,9 +13957,6 @@ snapshots: path-expression-matcher@1.5.0: {} - path-is-absolute@1.0.1: - optional: true - path-key@3.1.1: {} path-parse@1.0.7: {} @@ -14523,9 +14028,8 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - prism-media@1.3.5(@discordjs/opus@0.10.0)(opusscript@0.1.1): + prism-media@1.3.5(opusscript@0.1.1): optionalDependencies: - '@discordjs/opus': 0.10.0 opusscript: 0.1.1 prismjs@1.30.0: {} @@ -14680,11 +14184,6 @@ snapshots: dependencies: hookified: 2.2.0 - qoa-format@1.0.1: - dependencies: - '@thi.ng/bitstream': 2.4.48 - optional: true - qrcode-terminal@0.12.0: {} qrcode@1.5.4: @@ -14733,13 +14232,6 @@ snapshots: string_decoder: 1.1.1 util-deprecate: 1.0.2 - readable-stream@3.6.2: - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - optional: true - readdirp@5.0.0: {} real-require@0.2.0: {} @@ -14849,11 +14341,6 @@ snapshots: reusify@1.1.0: {} - rimraf@3.0.2: - dependencies: - glob: 7.2.3 - optional: true - rolldown-plugin-dts@0.25.0(@typescript/native-preview@7.0.0-dev.20260510.1)(rolldown@1.0.0)(typescript@6.0.3): dependencies: '@babel/generator': 8.0.0-rc.4 @@ -14892,28 +14379,6 @@ snapshots: '@rolldown/binding-win32-arm64-msvc': 1.0.0 '@rolldown/binding-win32-x64-msvc': 1.0.0 - rolldown@1.0.0-rc.17: - dependencies: - '@oxc-project/types': 0.127.0 - '@rolldown/pluginutils': 1.0.0-rc.17 - optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.0-rc.17 - '@rolldown/binding-darwin-arm64': 1.0.0-rc.17 - '@rolldown/binding-darwin-x64': 1.0.0-rc.17 - '@rolldown/binding-freebsd-x64': 1.0.0-rc.17 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-rc.17 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-rc.17 - '@rolldown/binding-linux-arm64-musl': 1.0.0-rc.17 - '@rolldown/binding-linux-ppc64-gnu': 1.0.0-rc.17 - '@rolldown/binding-linux-s390x-gnu': 1.0.0-rc.17 - '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.17 - '@rolldown/binding-linux-x64-musl': 1.0.0-rc.17 - '@rolldown/binding-openharmony-arm64': 1.0.0-rc.17 - '@rolldown/binding-wasm32-wasi': 1.0.0-rc.17 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.17 - '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.17 - optional: true - rolldown@1.0.0-rc.18: dependencies: '@oxc-project/types': 0.128.0 @@ -14975,9 +14440,6 @@ snapshots: sdp-transform@3.0.0: {} - semver@6.3.1: - optional: true - semver@7.8.0: {} send@1.2.1: @@ -15222,11 +14684,6 @@ snapshots: dependencies: safe-buffer: 5.1.2 - string_decoder@1.3.0: - dependencies: - safe-buffer: 5.2.1 - optional: true - stringify-entities@4.0.4: dependencies: character-entities-html4: 2.1.0 @@ -15386,7 +14843,7 @@ snapshots: ts-algebra@2.0.0: {} - tsdown@0.22.0(@typescript/native-preview@7.0.0-dev.20260510.1)(tsx@4.21.0)(typescript@6.0.3)(unrun@0.2.37): + tsdown@0.22.0(@typescript/native-preview@7.0.0-dev.20260510.1)(tsx@4.21.0)(typescript@6.0.3): dependencies: ansis: 4.2.0 cac: 7.0.0 @@ -15406,7 +14863,6 @@ snapshots: optionalDependencies: tsx: 4.21.0 typescript: 6.0.3 - unrun: 0.2.37 transitivePeerDependencies: - '@ts-macro/tsc' - '@typescript/native-preview' @@ -15508,11 +14964,6 @@ snapshots: unpipe@1.0.0: {} - unrun@0.2.37: - dependencies: - rolldown: 1.0.0-rc.17 - optional: true - url-parse@1.5.10: dependencies: querystringify: 2.2.0 @@ -15636,11 +15087,6 @@ snapshots: siginfo: 2.0.0 stackback: 0.0.2 - wide-align@1.1.5: - dependencies: - string-width: 4.2.3 - optional: true - win-guid@0.2.1: {} with@7.0.2: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index ba001af66cc..e57c5eeffe4 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -79,9 +79,10 @@ allowBuilds: protobufjs: true sharp: true tree-sitter-bash: false + openclaw: true packageExtensions: - "@mariozechner/pi-coding-agent": + "@earendil-works/pi-coding-agent": dependencies: strip-ansi: ^7.2.0 diff --git a/scripts/bench-model.ts b/scripts/bench-model.ts index 471338d3451..707c6f87e7f 100644 --- a/scripts/bench-model.ts +++ b/scripts/bench-model.ts @@ -1,4 +1,4 @@ -import { completeSimple, getModel, type Api, type Model } from "@mariozechner/pi-ai"; +import { completeSimple, getModel, type Api, type Model } from "@earendil-works/pi-ai"; type Usage = { input?: number; diff --git a/scripts/blacksmith-testbox-runner.mjs b/scripts/blacksmith-testbox-runner.mjs deleted file mode 100644 index e85de808727..00000000000 --- a/scripts/blacksmith-testbox-runner.mjs +++ /dev/null @@ -1,194 +0,0 @@ -#!/usr/bin/env node - -import { execFileSync, spawn as nodeSpawn } from "node:child_process"; -import path from "node:path"; -import { pathToFileURL } from "node:url"; -import { - evaluateLocalTestboxKey, - evaluateOpenClawTestboxClaim, - resolveTestboxId, - writeOpenClawTestboxClaim, -} from "./blacksmith-testbox-state.mjs"; - -function git(args, cwd) { - return execFileSync("git", args, { cwd, encoding: "utf8" }); -} - -export function splitRunnerArgs(argv = []) { - const separatorIndex = argv.indexOf("--"); - if (separatorIndex === -1) { - return { runnerArgs: argv, commandArgs: [] }; - } - return { - runnerArgs: argv.slice(0, separatorIndex), - commandArgs: argv.slice(separatorIndex + 1), - }; -} - -export function buildBlacksmithRunArgs({ commandArgs, testboxId }) { - const command = commandArgs.join(" ").trim(); - if (!command) { - return []; - } - return ["testbox", "run", "--id", testboxId, command]; -} - -export function resolveTestboxSyncTimeoutMs(env = process.env) { - const raw = env.OPENCLAW_TESTBOX_SYNC_TIMEOUT_MS; - if (raw === undefined || raw === "") { - return 5 * 60 * 1000; - } - const parsed = Number(raw); - return Number.isFinite(parsed) && parsed >= 0 ? parsed : 5 * 60 * 1000; -} - -function hasClaimFlag(runnerArgs) { - return runnerArgs.includes("--claim") || runnerArgs.includes("--claim-fresh"); -} - -function stripRunnerOnlyFlags(runnerArgs) { - return runnerArgs.filter((arg) => arg !== "--claim" && arg !== "--claim-fresh"); -} - -function pipeChunk(stream, chunk) { - if (chunk) { - stream.write(chunk); - } -} - -function runBlacksmithWithSyncGuard({ args, cwd, env, spawn, stderr, stdout, syncTimeoutMs }) { - return new Promise((resolve) => { - const child = spawn("blacksmith", args, { - cwd, - env, - stdio: ["inherit", "pipe", "pipe"], - }); - let settled = false; - let syncingSince = 0; - let timedOut = false; - let timer; - - const finish = (code) => { - if (settled) { - return; - } - settled = true; - clearInterval(timer); - resolve(timedOut ? 124 : typeof code === "number" ? code : 1); - }; - - const handleOutput = (stream, chunk) => { - const text = String(chunk); - pipeChunk(stream, chunk); - if (text.includes("Syncing...")) { - syncingSince ||= Date.now(); - } else if (syncingSince && /\b(running|executing|command|pnpm|npm|yarn|bun)\b/iu.test(text)) { - syncingSince = 0; - } - }; - - child.stdout?.on("data", (chunk) => handleOutput(stdout, chunk)); - child.stderr?.on("data", (chunk) => handleOutput(stderr, chunk)); - child.on("error", (error) => { - stderr.write(`Failed to start blacksmith: ${error.message}\n`); - finish(1); - }); - child.on("close", (code) => finish(code)); - - timer = setInterval( - () => { - if (!syncingSince || syncTimeoutMs <= 0) { - return; - } - if (Date.now() - syncingSince < syncTimeoutMs) { - return; - } - stderr.write( - `Blacksmith Testbox sync produced no post-sync output for ${syncTimeoutMs}ms; terminating local runner. ` + - "Rerun with OPENCLAW_TESTBOX_SYNC_TIMEOUT_MS=0 to disable this guard.\n", - ); - timedOut = true; - syncingSince = 0; - child.kill?.("SIGTERM"); - }, - Math.min(Math.max(syncTimeoutMs, 1), 1000), - ); - }); -} - -export async function runBlacksmithTestboxRunner({ - argv = process.argv.slice(2), - cwd = process.cwd(), - env = process.env, - spawn = nodeSpawn, - stderr = process.stderr, - stdout = process.stdout, -} = {}) { - const { runnerArgs, commandArgs } = splitRunnerArgs(argv); - const shouldClaim = hasClaimFlag(runnerArgs); - const testboxId = resolveTestboxId({ argv: stripRunnerOnlyFlags(runnerArgs), env }); - if (!testboxId) { - stderr.write( - "Missing Testbox id. Pass `--id ` or set OPENCLAW_TESTBOX_ID from this session's warmup output.\n", - ); - return 2; - } - - const keyResult = evaluateLocalTestboxKey({ env, testboxId }); - if (!keyResult.ok) { - stderr.write(`${keyResult.problems.join("\n")}\n`); - stderr.write( - "Refusing to reuse a remote-visible Testbox without the local private key. Run:\n" + - " blacksmith testbox warmup ci-check-testbox.yml --ref main --idle-timeout 90\n", - ); - return 2; - } - - const root = git(["rev-parse", "--show-toplevel"], cwd).trim(); - if (path.resolve(cwd) !== path.resolve(root)) { - stderr.write( - `Refusing to run Testbox sync from ${cwd}; run from repo root ${root} so rsync does not mirror a subdirectory.\n`, - ); - return 2; - } - - if (shouldClaim) { - const claim = writeOpenClawTestboxClaim({ cwd: root, env, testboxId }); - stdout.write(`OpenClaw Testbox claim written: ${testboxId} -> ${claim.claimPath}\n`); - } else { - const claimResult = evaluateOpenClawTestboxClaim({ - cwd: root, - env, - testboxId, - }); - if (!claimResult.ok) { - stderr.write(`${claimResult.problems.join("\n")}\n`); - stderr.write( - "Refusing to run a Testbox that was not claimed by this OpenClaw checkout. Run:\n" + - " blacksmith testbox warmup ci-check-testbox.yml --ref main --idle-timeout 90\n" + - " pnpm testbox:claim --id \n", - ); - return 2; - } - } - - const blacksmithArgs = buildBlacksmithRunArgs({ commandArgs, testboxId }); - if (blacksmithArgs.length === 0) { - stdout.write(`Testbox local key and OpenClaw claim ok: ${testboxId}\n`); - return 0; - } - - return await runBlacksmithWithSyncGuard({ - args: blacksmithArgs, - cwd, - env, - spawn, - stderr, - stdout, - syncTimeoutMs: resolveTestboxSyncTimeoutMs(env), - }); -} - -if (import.meta.url === pathToFileURL(process.argv[1] ?? "").href) { - process.exitCode = await runBlacksmithTestboxRunner(); -} diff --git a/scripts/blacksmith-testbox-state.mjs b/scripts/blacksmith-testbox-state.mjs deleted file mode 100644 index 0be2f604527..00000000000 --- a/scripts/blacksmith-testbox-state.mjs +++ /dev/null @@ -1,194 +0,0 @@ -import fs from "node:fs"; -import path from "node:path"; - -const DEFAULT_OPENCLAW_TESTBOX_CLAIM_TTL_MINUTES = 12 * 60; -const TESTBOX_ID_PATTERN = /^tbx_[a-z0-9]+$/u; -const OPENCLAW_TESTBOX_CLAIM_FILE = "openclaw-runner.json"; - -function parsePositiveInteger(value, fallback) { - if (!value) { - return fallback; - } - const parsed = Number.parseInt(value, 10); - return Number.isFinite(parsed) && parsed > 0 ? parsed : fallback; -} - -export function parseTestboxIdArg(argv = []) { - for (let index = 0; index < argv.length; index += 1) { - const value = argv[index]; - if (value === "--id" || value === "--testbox-id") { - return argv[index + 1] ?? ""; - } - if (value?.startsWith("--id=")) { - return value.slice("--id=".length); - } - if (value?.startsWith("--testbox-id=")) { - return value.slice("--testbox-id=".length); - } - } - return ""; -} - -export function resolveTestboxId({ argv = [], env = process.env } = {}) { - return ( - parseTestboxIdArg(argv) || - env.OPENCLAW_TESTBOX_ID || - env.BLACKSMITH_TESTBOX_ID || - env.TESTBOX_ID || - "" - ).trim(); -} - -function resolveBlacksmithTestboxStateDir({ env = process.env, homeDir } = {}) { - if (env.OPENCLAW_BLACKSMITH_TESTBOX_STATE_DIR) { - return env.OPENCLAW_BLACKSMITH_TESTBOX_STATE_DIR; - } - const blacksmithHome = - env.BLACKSMITH_HOME || path.join(homeDir || env.HOME || process.cwd(), ".blacksmith"); - return path.join(blacksmithHome, "testboxes"); -} - -export function evaluateLocalTestboxKey({ - testboxId, - env = process.env, - exists = fs.existsSync, - homeDir, -} = {}) { - if (!testboxId) { - return { ok: true, checked: false, problems: [] }; - } - - const problems = []; - if (!TESTBOX_ID_PATTERN.test(testboxId)) { - problems.push(`invalid Testbox id: ${testboxId}`); - return { - ok: false, - checked: true, - keyPath: "", - problems, - testboxId, - }; - } - - const stateDir = resolveBlacksmithTestboxStateDir({ env, homeDir }); - const testboxDir = path.join(stateDir, testboxId); - const keyPath = path.join(testboxDir, "id_ed25519"); - if (!exists(keyPath)) { - problems.push( - `local Testbox SSH key missing for ${testboxId}: expected ${keyPath}. ` + - "This id may be visible in `blacksmith testbox list` but unusable by this operator; warm a fresh box instead.", - ); - } - - return { - ok: problems.length === 0, - checked: true, - keyPath, - problems, - testboxDir, - testboxId, - }; -} - -function resolveOpenClawTestboxClaimPath({ testboxId, env = process.env, homeDir } = {}) { - const stateDir = resolveBlacksmithTestboxStateDir({ env, homeDir }); - return path.join(stateDir, testboxId, OPENCLAW_TESTBOX_CLAIM_FILE); -} - -export function evaluateOpenClawTestboxClaim({ - testboxId, - cwd, - env = process.env, - exists = fs.existsSync, - now = () => new Date(), - readFile = fs.readFileSync, - homeDir, -} = {}) { - if (!testboxId) { - return { ok: true, checked: false, problems: [] }; - } - - const claimPath = resolveOpenClawTestboxClaimPath({ testboxId, env, homeDir }); - const expectedRepoRoot = path.resolve(cwd || process.cwd()); - const maxAgeMinutes = parsePositiveInteger( - env.OPENCLAW_TESTBOX_CLAIM_TTL_MINUTES, - DEFAULT_OPENCLAW_TESTBOX_CLAIM_TTL_MINUTES, - ); - const problems = []; - - if (!exists(claimPath)) { - problems.push( - `OpenClaw Testbox claim missing for ${testboxId}: expected ${claimPath}. ` + - "Do not reuse ids from `blacksmith testbox list`; warm a fresh box and claim it with `pnpm testbox:claim --id `.", - ); - return { - ok: false, - checked: true, - claimPath, - expectedRepoRoot, - problems, - testboxId, - }; - } - - let claim; - try { - claim = JSON.parse(readFile(claimPath, "utf8")); - } catch (error) { - problems.push(`OpenClaw Testbox claim is unreadable for ${testboxId}: ${error.message}`); - } - - const claimedRepoRoot = claim?.repoRoot ? path.resolve(claim.repoRoot) : ""; - if (!claimedRepoRoot) { - problems.push(`OpenClaw Testbox claim is missing repoRoot for ${testboxId}: ${claimPath}`); - } else if (claimedRepoRoot !== expectedRepoRoot) { - problems.push( - `OpenClaw Testbox claim repo mismatch for ${testboxId}: claimed ${claimedRepoRoot}, current ${expectedRepoRoot}. ` + - "Warm and claim a fresh box for this checkout.", - ); - } - - const claimedAtMs = Date.parse(claim?.claimedAt ?? ""); - if (!Number.isFinite(claimedAtMs)) { - problems.push(`OpenClaw Testbox claim is missing claimedAt for ${testboxId}: ${claimPath}`); - } else { - const ageMinutes = Math.floor((now().getTime() - claimedAtMs) / 60000); - if (ageMinutes > maxAgeMinutes) { - problems.push( - `OpenClaw Testbox claim is stale for ${testboxId}: ${ageMinutes}m old, limit ${maxAgeMinutes}m. ` + - "Warm and claim a fresh box after crashes or long pauses.", - ); - } - } - - return { - ok: problems.length === 0, - checked: true, - claim, - claimPath, - expectedRepoRoot, - problems, - testboxId, - }; -} - -export function writeOpenClawTestboxClaim({ - testboxId, - cwd, - env = process.env, - homeDir, - mkdir = fs.mkdirSync, - writeFile = fs.writeFileSync, - now = () => new Date(), -} = {}) { - const claimPath = resolveOpenClawTestboxClaimPath({ testboxId, env, homeDir }); - const repoRoot = path.resolve(cwd || process.cwd()); - const payload = { - claimedAt: now().toISOString(), - repoRoot, - runnerVersion: 1, - }; - mkdir(path.dirname(claimPath), { recursive: true }); - writeFile(claimPath, `${JSON.stringify(payload, null, 2)}\n`); - return { claimPath, payload, testboxId }; -} diff --git a/scripts/check-changed.mjs b/scripts/check-changed.mjs index 54f89c7bab9..947b34b826a 100644 --- a/scripts/check-changed.mjs +++ b/scripts/check-changed.mjs @@ -40,7 +40,7 @@ function isTruthyEnvFlag(value) { return normalized !== "" && normalized !== "0" && normalized !== "false" && normalized !== "no"; } -export function shouldDelegateChangedCheckToTestbox(argv = [], env = process.env) { +export function shouldDelegateChangedCheckToCrabbox(argv = [], env = process.env) { if (!isTruthyEnvFlag(env.OPENCLAW_TESTBOX)) { return false; } @@ -56,10 +56,31 @@ export function shouldDelegateChangedCheckToTestbox(argv = [], env = process.env return true; } -export function buildChangedCheckTestboxArgs(argv = []) { +export function buildChangedCheckCrabboxArgs(argv = []) { return [ - "testbox:run", + "crabbox:run", "--", + "--provider", + "blacksmith-testbox", + "--blacksmith-org", + "openclaw", + "--blacksmith-workflow", + ".github/workflows/ci-check-testbox.yml", + "--blacksmith-job", + "check", + "--blacksmith-ref", + "main", + "--idle-timeout", + "90m", + "--ttl", + "240m", + "--timing-json", + "--", + "CI=1", + "NODE_OPTIONS=--max-old-space-size=4096", + "OPENCLAW_TEST_PROJECTS_PARALLEL=6", + "OPENCLAW_VITEST_MAX_WORKERS=1", + "OPENCLAW_VITEST_NO_OUTPUT_TIMEOUT_MS=900000", "OPENCLAW_TESTBOX=1", "OPENCLAW_TESTBOX_REMOTE_RUN=1", "pnpm", @@ -68,13 +89,13 @@ export function buildChangedCheckTestboxArgs(argv = []) { ]; } -export async function runChangedCheckViaTestbox(argv = [], env = process.env) { +export async function runChangedCheckViaCrabbox(argv = [], env = process.env) { console.error( - "[check:changed] OPENCLAW_TESTBOX=1 set; delegating to Blacksmith Testbox via `pnpm testbox:run`.", + "[check:changed] OPENCLAW_TESTBOX=1 set; delegating to Blacksmith Testbox via `pnpm crabbox:run`.", ); return await runManagedCommand({ bin: "pnpm", - args: buildChangedCheckTestboxArgs(argv), + args: buildChangedCheckCrabboxArgs(argv), env, }); } @@ -330,8 +351,8 @@ function isDirectRun() { if (isDirectRun()) { const argv = process.argv.slice(2); - if (shouldDelegateChangedCheckToTestbox(argv, process.env)) { - process.exitCode = await runChangedCheckViaTestbox(argv, process.env); + if (shouldDelegateChangedCheckToCrabbox(argv, process.env)) { + process.exitCode = await runChangedCheckViaCrabbox(argv, process.env); } else { const args = parseArgs(argv); const paths = diff --git a/scripts/control-ui-i18n.ts b/scripts/control-ui-i18n.ts index e401251c3c4..031672e1fc5 100644 --- a/scripts/control-ui-i18n.ts +++ b/scripts/control-ui-i18n.ts @@ -953,7 +953,7 @@ async function resolvePiCommand(): Promise { "--silent", "--no-audit", "--no-fund", - `@mariozechner/pi-coding-agent@${resolvePiPackageVersion()}`, + `@earendil-works/pi-coding-agent@${resolvePiPackageVersion()}`, ], { cwd: runtimeDir, diff --git a/scripts/e2e/session-runtime-context-docker-client.ts b/scripts/e2e/session-runtime-context-docker-client.ts index 753c6e36c77..497ceed3464 100644 --- a/scripts/e2e/session-runtime-context-docker-client.ts +++ b/scripts/e2e/session-runtime-context-docker-client.ts @@ -5,7 +5,7 @@ import { spawnSync } from "node:child_process"; import fs from "node:fs/promises"; import os from "node:os"; import path from "node:path"; -import { SessionManager } from "@mariozechner/pi-coding-agent"; +import { SessionManager } from "@earendil-works/pi-coding-agent"; import { queueRuntimeContextForNextTurn, resolveRuntimeContextPromptParts, diff --git a/scripts/lib/dependency-ownership.json b/scripts/lib/dependency-ownership.json index 93c576ead0f..08656106425 100644 --- a/scripts/lib/dependency-ownership.json +++ b/scripts/lib/dependency-ownership.json @@ -16,22 +16,22 @@ "class": "core-runtime", "risk": ["native", "terminal"] }, - "@mariozechner/pi-agent-core": { + "@earendil-works/pi-agent-core": { "owner": "capability:agent-runtime-pi", "class": "default-runtime-initially", "risk": ["large-transitive-cone", "agent-runtime"] }, - "@mariozechner/pi-ai": { + "@earendil-works/pi-ai": { "owner": "capability:agent-runtime-pi", "class": "default-runtime-initially", "risk": ["large-transitive-cone", "provider-sdk-fanout"] }, - "@mariozechner/pi-coding-agent": { + "@earendil-works/pi-coding-agent": { "owner": "capability:agent-runtime-pi", "class": "default-runtime-initially", "risk": ["large-transitive-cone", "agent-runtime"] }, - "@mariozechner/pi-tui": { + "@earendil-works/pi-tui": { "owner": "capability:tui-pi", "class": "default-runtime-initially", "risk": ["tui-runtime"] diff --git a/scripts/package-mac-app.sh b/scripts/package-mac-app.sh index 39265d25517..d089f762768 100755 --- a/scripts/package-mac-app.sh +++ b/scripts/package-mac-app.sh @@ -262,7 +262,7 @@ rm -rf "$APP_ROOT/Contents/Resources/DeviceModels" cp -R "$ROOT_DIR/apps/macos/Sources/OpenClaw/Resources/DeviceModels" "$APP_ROOT/Contents/Resources/DeviceModels" echo "📦 Copying model catalog" -MODEL_CATALOG_SRC="$ROOT_DIR/node_modules/@mariozechner/pi-ai/dist/models.generated.js" +MODEL_CATALOG_SRC="$ROOT_DIR/node_modules/@earendil-works/pi-ai/dist/models.generated.js" MODEL_CATALOG_DEST="$APP_ROOT/Contents/Resources/models.generated.js" if [ -f "$MODEL_CATALOG_SRC" ]; then cp "$MODEL_CATALOG_SRC" "$MODEL_CATALOG_DEST" diff --git a/scripts/test-projects.test-support.mjs b/scripts/test-projects.test-support.mjs index 7ed7796bc02..0aa84f58b3f 100644 --- a/scripts/test-projects.test-support.mjs +++ b/scripts/test-projects.test-support.mjs @@ -371,9 +371,6 @@ const TOOLING_SOURCE_TEST_TARGETS = new Map([ ["scripts/test-projects.mjs", ["test/scripts/test-projects.test.ts"]], ["scripts/test-projects.test-support.d.mts", ["test/scripts/test-projects.test.ts"]], ["scripts/test-projects.test-support.mjs", ["test/scripts/test-projects.test.ts"]], - ["scripts/blacksmith-testbox-state.mjs", ["test/scripts/blacksmith-testbox-state.test.ts"]], - ["scripts/blacksmith-testbox-runner.mjs", ["test/scripts/blacksmith-testbox-runner.test.ts"]], - ["scripts/testbox-sync-sanity.mjs", ["test/scripts/testbox-sync-sanity.test.ts"]], ["scripts/bundled-plugin-assets.mjs", ["test/scripts/bundled-plugin-assets.test.ts"]], ["scripts/bundle-a2ui.mjs", ["test/scripts/bundled-plugin-assets.test.ts"]], ["extensions/canvas/scripts/bundle-a2ui.mjs", ["extensions/canvas/scripts/bundle-a2ui.test.ts"]], @@ -401,15 +398,6 @@ const TOOLING_TEST_TARGETS = new Map([ ["test/scripts/plugin-prerelease-test-plan.test.ts"], ], ["test/scripts/test-projects.test.ts", ["test/scripts/test-projects.test.ts"]], - [ - "test/scripts/blacksmith-testbox-runner.test.ts", - ["test/scripts/blacksmith-testbox-runner.test.ts"], - ], - [ - "test/scripts/blacksmith-testbox-state.test.ts", - ["test/scripts/blacksmith-testbox-state.test.ts"], - ], - ["test/scripts/testbox-sync-sanity.test.ts", ["test/scripts/testbox-sync-sanity.test.ts"]], [ "test/scripts/vitest-local-scheduling.test.ts", ["test/scripts/vitest-local-scheduling.test.ts"], diff --git a/scripts/testbox-sync-sanity.mjs b/scripts/testbox-sync-sanity.mjs deleted file mode 100644 index 6942c385f58..00000000000 --- a/scripts/testbox-sync-sanity.mjs +++ /dev/null @@ -1,134 +0,0 @@ -#!/usr/bin/env node - -import { execFileSync } from "node:child_process"; -import fs from "node:fs"; -import path from "node:path"; -import { pathToFileURL } from "node:url"; -import { - evaluateLocalTestboxKey, - evaluateOpenClawTestboxClaim, - resolveTestboxId, -} from "./blacksmith-testbox-state.mjs"; - -const DEFAULT_DELETION_THRESHOLD = 200; -const REQUIRED_ROOT_FILES = ["package.json", "pnpm-lock.yaml", ".gitignore"]; - -function parseBooleanEnv(value) { - return ["1", "true", "yes", "on"].includes(value?.trim().toLowerCase() ?? ""); -} - -function parsePositiveInteger(value, fallback) { - if (!value) { - return fallback; - } - const parsed = Number.parseInt(value, 10); - return Number.isFinite(parsed) && parsed > 0 ? parsed : fallback; -} - -export function parseGitShortStatus(raw) { - return raw - .split(/\r?\n/u) - .map((line) => line.trimEnd()) - .filter(Boolean) - .map((line) => { - const status = line.slice(0, 2); - const rawPath = line.slice(3); - return { - line, - path: rawPath.includes(" -> ") ? (rawPath.split(" -> ").at(-1) ?? rawPath) : rawPath, - status, - trackedDeletion: status.includes("D") && status !== "??", - }; - }); -} - -export function evaluateTestboxSyncSanity({ - cwd, - statusRaw, - exists = fs.existsSync, - deletionThreshold = DEFAULT_DELETION_THRESHOLD, - allowMassDeletions = false, -}) { - const missingRootFiles = REQUIRED_ROOT_FILES.filter((file) => !exists(path.join(cwd, file))); - const statusEntries = parseGitShortStatus(statusRaw); - const trackedDeletions = statusEntries.filter((entry) => entry.trackedDeletion); - const problems = []; - - if (missingRootFiles.length > 0) { - problems.push(`missing required root files: ${missingRootFiles.join(", ")}`); - } - if (!allowMassDeletions && trackedDeletions.length >= deletionThreshold) { - const examples = trackedDeletions - .slice(0, 8) - .map((entry) => entry.path) - .join(", "); - problems.push( - `remote git status has ${trackedDeletions.length} tracked deletions (threshold ${deletionThreshold}); examples: ${examples}`, - ); - } - - return { - ok: problems.length === 0, - missingRootFiles, - problems, - statusEntryCount: statusEntries.length, - trackedDeletionCount: trackedDeletions.length, - }; -} - -function git(args, cwd) { - return execFileSync("git", args, { cwd, encoding: "utf8" }); -} - -export function runTestboxSyncSanity({ - cwd = process.cwd(), - env = process.env, - argv = process.argv.slice(2), - stdout = process.stdout, - stderr = process.stderr, -} = {}) { - const root = git(["rev-parse", "--show-toplevel"], cwd).trim(); - const statusRaw = git(["status", "--short", "--untracked-files=all"], root); - const testboxId = resolveTestboxId({ argv, env }); - const keyResult = evaluateLocalTestboxKey({ - env, - testboxId, - }); - const claimResult = evaluateOpenClawTestboxClaim({ - cwd: root, - env, - testboxId, - }); - const result = evaluateTestboxSyncSanity({ - cwd: root, - statusRaw, - deletionThreshold: parsePositiveInteger( - env.OPENCLAW_TESTBOX_DELETION_THRESHOLD, - DEFAULT_DELETION_THRESHOLD, - ), - allowMassDeletions: parseBooleanEnv(env.OPENCLAW_TESTBOX_ALLOW_MASS_DELETIONS), - }); - result.problems.push(...keyResult.problems); - result.problems.push(...claimResult.problems); - result.ok = result.problems.length === 0; - - if (!result.ok) { - stderr.write(`Testbox sync sanity failed:\n- ${result.problems.join("\n- ")}\n`); - stderr.write( - "Warm a fresh box, keep using the id from this session, or rerun from a clean repo root before spending a gate.\n", - ); - return 1; - } - - if (keyResult.checked) { - stdout.write(`Testbox local key and OpenClaw claim ok: ${keyResult.testboxId}\n`); - } - stdout.write( - `Testbox sync sanity ok: ${result.statusEntryCount} changed entries, ${result.trackedDeletionCount} tracked deletions.\n`, - ); - return 0; -} - -if (import.meta.url === pathToFileURL(process.argv[1] ?? "").href) { - process.exitCode = runTestboxSyncSanity(); -} diff --git a/skills/coding-agent/SKILL.md b/skills/coding-agent/SKILL.md index 8d8adb032ff..fe06186c7cf 100644 --- a/skills/coding-agent/SKILL.md +++ b/skills/coding-agent/SKILL.md @@ -264,7 +264,7 @@ bash pty:true workdir:~/project background:true command:"opencode run 'Your task ## Pi Coding Agent ```bash -# Install: npm install -g @mariozechner/pi-coding-agent +# Install: npm install -g @earendil-works/pi-coding-agent bash pty:true workdir:~/project background:true command:"pi 'Your task'" # Non-interactive mode diff --git a/src/agents/anthropic-payload-log.test.ts b/src/agents/anthropic-payload-log.test.ts index 0b26f633cd2..92bc1a889c6 100644 --- a/src/agents/anthropic-payload-log.test.ts +++ b/src/agents/anthropic-payload-log.test.ts @@ -1,5 +1,5 @@ import crypto from "node:crypto"; -import type { StreamFn } from "@mariozechner/pi-agent-core"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; import { describe, expect, it } from "vitest"; import { createAnthropicPayloadLogger } from "./anthropic-payload-log.js"; diff --git a/src/agents/anthropic-payload-log.ts b/src/agents/anthropic-payload-log.ts index 6a1669598cb..a41e67e9474 100644 --- a/src/agents/anthropic-payload-log.ts +++ b/src/agents/anthropic-payload-log.ts @@ -1,7 +1,7 @@ import crypto from "node:crypto"; import path from "node:path"; -import type { AgentMessage, StreamFn } from "@mariozechner/pi-agent-core"; -import type { Api, Model } from "@mariozechner/pi-ai"; +import type { AgentMessage, StreamFn } from "@earendil-works/pi-agent-core"; +import type { Api, Model } from "@earendil-works/pi-ai"; import { resolveStateDir } from "../config/paths.js"; import { createSubsystemLogger } from "../logging/subsystem.js"; import { resolveUserPath } from "../utils.js"; diff --git a/src/agents/anthropic-transport-stream.live.test.ts b/src/agents/anthropic-transport-stream.live.test.ts index b2509437cce..ebb52664290 100644 --- a/src/agents/anthropic-transport-stream.live.test.ts +++ b/src/agents/anthropic-transport-stream.live.test.ts @@ -1,5 +1,5 @@ import http from "node:http"; -import type { Model } from "@mariozechner/pi-ai"; +import type { Model } from "@earendil-works/pi-ai"; import { describe, expect, it } from "vitest"; import { createAnthropicMessagesTransportStreamFn } from "./anthropic-transport-stream.js"; import { isLiveTestEnabled } from "./live-test-helpers.js"; diff --git a/src/agents/anthropic-transport-stream.test.ts b/src/agents/anthropic-transport-stream.test.ts index 6b1de454e16..f5b244979de 100644 --- a/src/agents/anthropic-transport-stream.test.ts +++ b/src/agents/anthropic-transport-stream.test.ts @@ -1,4 +1,4 @@ -import type { Model } from "@mariozechner/pi-ai"; +import type { Model } from "@earendil-works/pi-ai"; import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; import { attachModelProviderRequestTransport } from "./provider-request-config.js"; diff --git a/src/agents/anthropic-transport-stream.ts b/src/agents/anthropic-transport-stream.ts index 3828cce7a83..99a14e729e7 100644 --- a/src/agents/anthropic-transport-stream.ts +++ b/src/agents/anthropic-transport-stream.ts @@ -1,4 +1,4 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; import { calculateCost, getEnvApiKey, @@ -8,7 +8,7 @@ import { type Model, type SimpleStreamOptions, type ThinkingLevel, -} from "@mariozechner/pi-ai"; +} from "@earendil-works/pi-ai"; import { MALFORMED_STREAMING_FRAGMENT_ERROR_MESSAGE } from "../shared/assistant-error-format.js"; import { normalizeLowercaseStringOrEmpty } from "../shared/string-coerce.js"; import { diff --git a/src/agents/anthropic-vertex-stream.ts b/src/agents/anthropic-vertex-stream.ts index cd0a1c202fc..0594832c290 100644 --- a/src/agents/anthropic-vertex-stream.ts +++ b/src/agents/anthropic-vertex-stream.ts @@ -1,4 +1,4 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; import { loadBundledPluginPublicSurfaceModuleSync } from "../plugin-sdk/facade-loader.js"; type AnthropicVertexStreamFacade = { diff --git a/src/agents/anthropic.setup-token.live.test.ts b/src/agents/anthropic.setup-token.live.test.ts index fd2848cbca8..429d9151aaf 100644 --- a/src/agents/anthropic.setup-token.live.test.ts +++ b/src/agents/anthropic.setup-token.live.test.ts @@ -2,7 +2,7 @@ import { randomUUID } from "node:crypto"; import fs from "node:fs/promises"; import os from "node:os"; import path from "node:path"; -import { type Api, completeSimple, type Model } from "@mariozechner/pi-ai"; +import { type Api, completeSimple, type Model } from "@earendil-works/pi-ai"; import { describe, expect, it } from "vitest"; import { ANTHROPIC_SETUP_TOKEN_PREFIX, diff --git a/src/agents/apply-patch.ts b/src/agents/apply-patch.ts index 783888356ee..e06a76def2a 100644 --- a/src/agents/apply-patch.ts +++ b/src/agents/apply-patch.ts @@ -1,7 +1,7 @@ import syncFs from "node:fs"; import fs from "node:fs/promises"; import path from "node:path"; -import type { AgentTool } from "@mariozechner/pi-agent-core"; +import type { AgentTool } from "@earendil-works/pi-agent-core"; import { Type } from "typebox"; import { openRootFile, type RootFileOpenResult } from "../infra/boundary-file-read.js"; import { root as fsRoot } from "../infra/fs-safe.js"; diff --git a/src/agents/auth-profiles/oauth-refresh-queue.test.ts b/src/agents/auth-profiles/oauth-refresh-queue.test.ts index 3b075375e8a..d95c8b1c85b 100644 --- a/src/agents/auth-profiles/oauth-refresh-queue.test.ts +++ b/src/agents/auth-profiles/oauth-refresh-queue.test.ts @@ -26,7 +26,7 @@ const { formatProviderAuthProfileApiKeyWithPluginMock, } = getOAuthProviderRuntimeMocks(); -vi.mock("@mariozechner/pi-ai/oauth", () => ({ +vi.mock("@earendil-works/pi-ai/oauth", () => ({ getOAuthApiKey: vi.fn(async () => null), getOAuthProviders: () => [{ id: "openai-codex" }], })); diff --git a/src/agents/auth-profiles/oauth.adopt-identity.test.ts b/src/agents/auth-profiles/oauth.adopt-identity.test.ts index b473bcc5b60..9c07f2974fa 100644 --- a/src/agents/auth-profiles/oauth.adopt-identity.test.ts +++ b/src/agents/auth-profiles/oauth.adopt-identity.test.ts @@ -48,7 +48,7 @@ function expectOAuthProfileFields( // sub-agent store. Unit tests cover policy variants; this suite proves each // production branch refuses a mismatched accountId. -vi.mock("@mariozechner/pi-ai/oauth", () => ({ +vi.mock("@earendil-works/pi-ai/oauth", () => ({ getOAuthApiKey: vi.fn(async () => null), getOAuthProviders: () => [{ id: "openai-codex" }, { id: "anthropic" }], })); diff --git a/src/agents/auth-profiles/oauth.concurrent-agents.test.ts b/src/agents/auth-profiles/oauth.concurrent-agents.test.ts index 4ed4fe46bca..c93a77db6db 100644 --- a/src/agents/auth-profiles/oauth.concurrent-agents.test.ts +++ b/src/agents/auth-profiles/oauth.concurrent-agents.test.ts @@ -32,7 +32,7 @@ async function loadOAuthModuleForTest() { ({ resolveApiKeyForProfile, resetOAuthRefreshQueuesForTest } = await import("./oauth.js")); } -vi.mock("@mariozechner/pi-ai/oauth", () => ({ +vi.mock("@earendil-works/pi-ai/oauth", () => ({ getOAuthApiKey: vi.fn(async () => null), getOAuthProviders: () => [{ id: "openai-codex" }], })); diff --git a/src/agents/auth-profiles/oauth.fallback-to-main-agent.test.ts b/src/agents/auth-profiles/oauth.fallback-to-main-agent.test.ts index fb4cf1481ec..436016a4bcb 100644 --- a/src/agents/auth-profiles/oauth.fallback-to-main-agent.test.ts +++ b/src/agents/auth-profiles/oauth.fallback-to-main-agent.test.ts @@ -13,7 +13,7 @@ const { getOAuthApiKeyMock } = vi.hoisted(() => ({ }), })); -vi.mock("@mariozechner/pi-ai/oauth", () => ({ +vi.mock("@earendil-works/pi-ai/oauth", () => ({ getOAuthApiKey: getOAuthApiKeyMock, getOAuthProviders: () => [{ id: "anthropic" }, { id: "openai-codex" }], })); @@ -37,7 +37,7 @@ vi.mock("../../plugins/provider-runtime.js", () => ({ })); afterAll(() => { - vi.doUnmock("@mariozechner/pi-ai/oauth"); + vi.doUnmock("@earendil-works/pi-ai/oauth"); vi.doUnmock("../cli-credentials.js"); vi.doUnmock("../../plugins/provider-runtime.runtime.js"); vi.doUnmock("../../plugins/provider-runtime.js"); diff --git a/src/agents/auth-profiles/oauth.mirror-refresh.test.ts b/src/agents/auth-profiles/oauth.mirror-refresh.test.ts index 97dca98927a..04357615e68 100644 --- a/src/agents/auth-profiles/oauth.mirror-refresh.test.ts +++ b/src/agents/auth-profiles/oauth.mirror-refresh.test.ts @@ -36,7 +36,7 @@ function requireOAuthCredential(store: AuthProfileStore, profileId: string): OAu return profile; } -vi.mock("@mariozechner/pi-ai/oauth", () => ({ +vi.mock("@earendil-works/pi-ai/oauth", () => ({ getOAuthProviders: () => [{ id: "anthropic" }, { id: "openai-codex" }], getOAuthApiKey: vi.fn(async (provider: string, credentials: Record) => { const credential = credentials[provider]; diff --git a/src/agents/auth-profiles/oauth.openai-codex-refresh-fallback.test.ts b/src/agents/auth-profiles/oauth.openai-codex-refresh-fallback.test.ts index 5ffd83e7f1f..600b01e9113 100644 --- a/src/agents/auth-profiles/oauth.openai-codex-refresh-fallback.test.ts +++ b/src/agents/auth-profiles/oauth.openai-codex-refresh-fallback.test.ts @@ -12,7 +12,7 @@ import { } from "./store.js"; import type { AuthProfileStore, OAuthCredential } from "./types.js"; let resolveApiKeyForProfile: typeof import("./oauth.js").resolveApiKeyForProfile; -type GetOAuthApiKey = typeof import("@mariozechner/pi-ai/oauth").getOAuthApiKey; +type GetOAuthApiKey = typeof import("@earendil-works/pi-ai/oauth").getOAuthApiKey; const { getOAuthApiKeyMock } = vi.hoisted(() => ({ getOAuthApiKeyMock: vi.fn(async () => { @@ -43,7 +43,7 @@ vi.mock("../cli-credentials.js", () => ({ resetCliCredentialCachesForTest: () => undefined, })); -vi.mock("@mariozechner/pi-ai/oauth", () => ({ +vi.mock("@earendil-works/pi-ai/oauth", () => ({ getOAuthApiKey: getOAuthApiKeyMock, getOAuthProviders: () => [ { id: "openai-codex", envApiKey: "OPENAI_API_KEY", oauthTokenEnv: "OPENAI_OAUTH_TOKEN" }, // pragma: allowlist secret @@ -62,7 +62,7 @@ vi.mock("../../plugins/provider-runtime.js", () => ({ })); afterAll(() => { - vi.doUnmock("@mariozechner/pi-ai/oauth"); + vi.doUnmock("@earendil-works/pi-ai/oauth"); vi.doUnmock("../cli-credentials.js"); vi.doUnmock("../../plugins/provider-runtime.runtime.js"); vi.doUnmock("../../plugins/provider-runtime.js"); diff --git a/src/agents/auth-profiles/oauth.ts b/src/agents/auth-profiles/oauth.ts index 6703114ee4d..4fb672db7f1 100644 --- a/src/agents/auth-profiles/oauth.ts +++ b/src/agents/auth-profiles/oauth.ts @@ -3,7 +3,7 @@ import { getOAuthProviders, type OAuthCredentials, type OAuthProvider, -} from "@mariozechner/pi-ai/oauth"; +} from "@earendil-works/pi-ai/oauth"; import { getRuntimeConfig } from "../../config/config.js"; import type { OpenClawConfig } from "../../config/types.openclaw.js"; import { coerceSecretRef } from "../../config/types.secrets.js"; diff --git a/src/agents/bash-tools.exec-host-gateway.ts b/src/agents/bash-tools.exec-host-gateway.ts index 09cc814bd6a..3562ae09f85 100644 --- a/src/agents/bash-tools.exec-host-gateway.ts +++ b/src/agents/bash-tools.exec-host-gateway.ts @@ -1,4 +1,4 @@ -import type { AgentToolResult } from "@mariozechner/pi-agent-core"; +import type { AgentToolResult } from "@earendil-works/pi-agent-core"; import { describeInterpreterInlineEval } from "../infra/command-analysis/inline-eval.js"; import { detectPolicyInlineEval } from "../infra/command-analysis/policy.js"; import { diff --git a/src/agents/bash-tools.exec-host-node-phases.ts b/src/agents/bash-tools.exec-host-node-phases.ts index 753b06a47c2..3fb5b80aab7 100644 --- a/src/agents/bash-tools.exec-host-node-phases.ts +++ b/src/agents/bash-tools.exec-host-node-phases.ts @@ -1,5 +1,5 @@ import crypto from "node:crypto"; -import type { AgentToolResult } from "@mariozechner/pi-agent-core"; +import type { AgentToolResult } from "@earendil-works/pi-agent-core"; import { describeInterpreterInlineEval, type InterpreterInlineEvalHit, diff --git a/src/agents/bash-tools.exec-host-node.ts b/src/agents/bash-tools.exec-host-node.ts index 00f0c255ce3..479eb2a1bec 100644 --- a/src/agents/bash-tools.exec-host-node.ts +++ b/src/agents/bash-tools.exec-host-node.ts @@ -1,4 +1,4 @@ -import type { AgentToolResult } from "@mariozechner/pi-agent-core"; +import type { AgentToolResult } from "@earendil-works/pi-agent-core"; import { APPROVALS_SCOPE, WRITE_SCOPE } from "../gateway/operator-scopes.js"; import { requiresExecApproval, diff --git a/src/agents/bash-tools.exec-host-shared.ts b/src/agents/bash-tools.exec-host-shared.ts index b66e9bf54cd..d987143a87c 100644 --- a/src/agents/bash-tools.exec-host-shared.ts +++ b/src/agents/bash-tools.exec-host-shared.ts @@ -1,5 +1,5 @@ import crypto from "node:crypto"; -import type { AgentToolResult } from "@mariozechner/pi-agent-core"; +import type { AgentToolResult } from "@earendil-works/pi-agent-core"; import { formatErrorMessage } from "../infra/errors.js"; import { buildExecApprovalUnavailableReplyPayload } from "../infra/exec-approval-reply.js"; import { diff --git a/src/agents/bash-tools.exec-runtime.ts b/src/agents/bash-tools.exec-runtime.ts index 169d92e753c..dc03d060faa 100644 --- a/src/agents/bash-tools.exec-runtime.ts +++ b/src/agents/bash-tools.exec-runtime.ts @@ -1,5 +1,5 @@ import path from "node:path"; -import type { AgentToolResult } from "@mariozechner/pi-agent-core"; +import type { AgentToolResult } from "@earendil-works/pi-agent-core"; import { emitDiagnosticEvent } from "../infra/diagnostic-events.js"; import { DEFAULT_EXEC_APPROVAL_TIMEOUT_MS, diff --git a/src/agents/bash-tools.exec.ts b/src/agents/bash-tools.exec.ts index 68b1052df19..a707676ac86 100644 --- a/src/agents/bash-tools.exec.ts +++ b/src/agents/bash-tools.exec.ts @@ -1,5 +1,5 @@ import path from "node:path"; -import type { AgentToolResult } from "@mariozechner/pi-agent-core"; +import type { AgentToolResult } from "@earendil-works/pi-agent-core"; import { buildCommandPayloadCandidates } from "../infra/command-analysis/risks.js"; import { analyzeShellCommand } from "../infra/exec-approvals-analysis.js"; import { diff --git a/src/agents/bash-tools.process-send-keys.ts b/src/agents/bash-tools.process-send-keys.ts index 880d98f6a9d..5c79234da28 100644 --- a/src/agents/bash-tools.process-send-keys.ts +++ b/src/agents/bash-tools.process-send-keys.ts @@ -1,4 +1,4 @@ -import type { AgentToolResult } from "@mariozechner/pi-agent-core"; +import type { AgentToolResult } from "@earendil-works/pi-agent-core"; import type { ProcessSession } from "./bash-process-registry.js"; import { deriveSessionName } from "./bash-tools.shared.js"; import { encodeKeySequence, hasCursorModeSensitiveKeys } from "./pty-keys.js"; diff --git a/src/agents/bash-tools.process.ts b/src/agents/bash-tools.process.ts index 65f88b5dd00..e0942d9084f 100644 --- a/src/agents/bash-tools.process.ts +++ b/src/agents/bash-tools.process.ts @@ -1,4 +1,4 @@ -import type { AgentToolResult } from "@mariozechner/pi-agent-core"; +import type { AgentToolResult } from "@earendil-works/pi-agent-core"; import { formatDurationCompact } from "../infra/format-time/format-duration.ts"; import { getDiagnosticSessionState } from "../logging/diagnostic-session-state.js"; import { killProcessTree } from "../process/kill-tree.js"; diff --git a/src/agents/btw-transcript.ts b/src/agents/btw-transcript.ts index 486dbbfb6c0..4c96f424a06 100644 --- a/src/agents/btw-transcript.ts +++ b/src/agents/btw-transcript.ts @@ -4,7 +4,7 @@ import { migrateSessionEntries, parseSessionEntries, type SessionEntry as PiSessionEntry, -} from "@mariozechner/pi-coding-agent"; +} from "@earendil-works/pi-coding-agent"; import { resolveSessionFilePath, resolveSessionFilePathOptions, diff --git a/src/agents/btw.test.ts b/src/agents/btw.test.ts index 06676390571..cabe5aabe88 100644 --- a/src/agents/btw.test.ts +++ b/src/agents/btw.test.ts @@ -22,9 +22,9 @@ const prepareProviderRuntimeAuthMock = vi.fn(); const registerProviderStreamForModelMock = vi.fn(); const diagDebugMock = vi.fn(); -vi.mock("@mariozechner/pi-ai", async () => { +vi.mock("@earendil-works/pi-ai", async () => { const original = - await vi.importActual("@mariozechner/pi-ai"); + await vi.importActual("@earendil-works/pi-ai"); return { ...original, streamSimple: (...args: unknown[]) => streamSimpleMock(...args), @@ -38,7 +38,7 @@ vi.mock("node:fs/promises", () => ({ readFile: (...args: unknown[]) => readFileMock(...args), })); -vi.mock("@mariozechner/pi-coding-agent", () => ({ +vi.mock("@earendil-works/pi-coding-agent", () => ({ buildSessionContext: (...args: unknown[]) => buildSessionContextMock(...args), generateSummary: vi.fn(async () => "summary"), migrateSessionEntries: (...args: unknown[]) => migrateSessionEntriesMock(...args), diff --git a/src/agents/btw.ts b/src/agents/btw.ts index 4bcf0fc0aca..7b10fb9af36 100644 --- a/src/agents/btw.ts +++ b/src/agents/btw.ts @@ -6,7 +6,7 @@ import { type Message, type Model, type TextContent, -} from "@mariozechner/pi-ai"; +} from "@earendil-works/pi-ai"; import type { GetReplyOptions } from "../auto-reply/get-reply-options.types.js"; import type { ReplyPayload } from "../auto-reply/reply-payload.js"; import type { ReasoningLevel, ThinkLevel } from "../auto-reply/thinking.js"; diff --git a/src/agents/cache-trace.ts b/src/agents/cache-trace.ts index 43f7bd4a177..b9d0909a9fa 100644 --- a/src/agents/cache-trace.ts +++ b/src/agents/cache-trace.ts @@ -1,6 +1,6 @@ import crypto from "node:crypto"; import path from "node:path"; -import type { AgentMessage, StreamFn } from "@mariozechner/pi-agent-core"; +import type { AgentMessage, StreamFn } from "@earendil-works/pi-agent-core"; import { resolveStateDir } from "../config/paths.js"; import type { OpenClawConfig } from "../config/types.openclaw.js"; import { resolveUserPath } from "../utils.js"; diff --git a/src/agents/chutes-oauth.ts b/src/agents/chutes-oauth.ts index 5c3d6f8ef77..1959afdb852 100644 --- a/src/agents/chutes-oauth.ts +++ b/src/agents/chutes-oauth.ts @@ -1,5 +1,5 @@ import { createHash, randomBytes } from "node:crypto"; -import type { OAuthCredentials } from "@mariozechner/pi-ai"; +import type { OAuthCredentials } from "@earendil-works/pi-ai"; import { normalizeOptionalString } from "../shared/string-coerce.js"; const CHUTES_OAUTH_ISSUER = "https://api.chutes.ai"; diff --git a/src/agents/cli-runner.helpers.test.ts b/src/agents/cli-runner.helpers.test.ts index 9a726c7f63b..d75977e2fbb 100644 --- a/src/agents/cli-runner.helpers.test.ts +++ b/src/agents/cli-runner.helpers.test.ts @@ -1,6 +1,6 @@ import fs from "node:fs/promises"; import path from "node:path"; -import type { ImageContent } from "@mariozechner/pi-ai"; +import type { ImageContent } from "@earendil-works/pi-ai"; import { beforeEach, describe, expect, it, vi } from "vitest"; import { resolvePreferredOpenClawTmpDir } from "../infra/tmp-openclaw-dir.js"; import { MAX_IMAGE_BYTES } from "../media/constants.js"; diff --git a/src/agents/cli-runner.reliability.test.ts b/src/agents/cli-runner.reliability.test.ts index 98c31531042..f13385311eb 100644 --- a/src/agents/cli-runner.reliability.test.ts +++ b/src/agents/cli-runner.reliability.test.ts @@ -1,7 +1,7 @@ import fs from "node:fs"; import os from "node:os"; import path from "node:path"; -import { CURRENT_SESSION_VERSION } from "@mariozechner/pi-coding-agent"; +import { CURRENT_SESSION_VERSION } from "@earendil-works/pi-coding-agent"; import { afterEach, describe, expect, it, vi } from "vitest"; import { __testing as replyRunTesting, diff --git a/src/agents/cli-runner.ts b/src/agents/cli-runner.ts index 0c9b3a69ae8..9b320347462 100644 --- a/src/agents/cli-runner.ts +++ b/src/agents/cli-runner.ts @@ -1,4 +1,4 @@ -import { SessionManager } from "@mariozechner/pi-coding-agent"; +import { SessionManager } from "@earendil-works/pi-coding-agent"; import type { ReplyPayload } from "../auto-reply/reply-payload.js"; import { SILENT_REPLY_TOKEN } from "../auto-reply/tokens.js"; import { formatErrorMessage } from "../infra/errors.js"; diff --git a/src/agents/cli-runner/helpers.ts b/src/agents/cli-runner/helpers.ts index 45348096d30..8e4f97d6488 100644 --- a/src/agents/cli-runner/helpers.ts +++ b/src/agents/cli-runner/helpers.ts @@ -2,8 +2,8 @@ import crypto from "node:crypto"; import fs from "node:fs/promises"; import os from "node:os"; import path from "node:path"; -import type { AgentTool } from "@mariozechner/pi-agent-core"; -import type { ImageContent } from "@mariozechner/pi-ai"; +import type { AgentTool } from "@earendil-works/pi-agent-core"; +import type { ImageContent } from "@earendil-works/pi-ai"; import { KeyedAsyncQueue } from "openclaw/plugin-sdk/keyed-async-queue"; import { isAcpRuntimeSpawnAvailable } from "../../acp/runtime/availability.js"; import type { SourceReplyDeliveryMode } from "../../auto-reply/get-reply-options.types.js"; diff --git a/src/agents/cli-runner/prepare.test.ts b/src/agents/cli-runner/prepare.test.ts index 56d86447329..7691fa32060 100644 --- a/src/agents/cli-runner/prepare.test.ts +++ b/src/agents/cli-runner/prepare.test.ts @@ -1,7 +1,7 @@ import fs from "node:fs"; import os from "node:os"; import path from "node:path"; -import { CURRENT_SESSION_VERSION } from "@mariozechner/pi-coding-agent"; +import { CURRENT_SESSION_VERSION } from "@earendil-works/pi-coding-agent"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import type { OpenClawConfig } from "../../config/types.openclaw.js"; import { getGlobalHookRunner } from "../../plugins/hook-runner-global.js"; diff --git a/src/agents/cli-runner/session-history.test.ts b/src/agents/cli-runner/session-history.test.ts index aaac867cff9..14f324915b8 100644 --- a/src/agents/cli-runner/session-history.test.ts +++ b/src/agents/cli-runner/session-history.test.ts @@ -1,7 +1,7 @@ import fs from "node:fs"; import os from "node:os"; import path from "node:path"; -import { CURRENT_SESSION_VERSION } from "@mariozechner/pi-coding-agent"; +import { CURRENT_SESSION_VERSION } from "@earendil-works/pi-coding-agent"; import { afterEach, describe, expect, it, vi } from "vitest"; import { buildCliSessionHistoryPrompt, diff --git a/src/agents/cli-runner/session-history.ts b/src/agents/cli-runner/session-history.ts index 402d67ebbc7..dddf4578ed5 100644 --- a/src/agents/cli-runner/session-history.ts +++ b/src/agents/cli-runner/session-history.ts @@ -1,6 +1,6 @@ import fsp from "node:fs/promises"; import path from "node:path"; -import { migrateSessionEntries, parseSessionEntries } from "@mariozechner/pi-coding-agent"; +import { migrateSessionEntries, parseSessionEntries } from "@earendil-works/pi-coding-agent"; import { resolveSessionFilePath, resolveSessionFilePathOptions, diff --git a/src/agents/cli-runner/types.ts b/src/agents/cli-runner/types.ts index 04690798ef8..485c8bb2b38 100644 --- a/src/agents/cli-runner/types.ts +++ b/src/agents/cli-runner/types.ts @@ -1,4 +1,4 @@ -import type { ImageContent } from "@mariozechner/pi-ai"; +import type { ImageContent } from "@earendil-works/pi-ai"; import type { SourceReplyDeliveryMode } from "../../auto-reply/get-reply-options.types.js"; import type { ReplyOperation } from "../../auto-reply/reply/reply-run-registry.js"; import type { ThinkLevel } from "../../auto-reply/thinking.js"; diff --git a/src/agents/command/attempt-execution.ts b/src/agents/command/attempt-execution.ts index 145d3508a81..4551ff46c0c 100644 --- a/src/agents/command/attempt-execution.ts +++ b/src/agents/command/attempt-execution.ts @@ -1,4 +1,4 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; import { formatAcpErrorChain } from "../../acp/runtime/errors.js"; import { normalizeReplyPayload } from "../../auto-reply/reply/normalize-reply.js"; import type { ThinkLevel, VerboseLevel } from "../../auto-reply/thinking.js"; diff --git a/src/agents/command/cli-compaction.test.ts b/src/agents/command/cli-compaction.test.ts index a494a26fcb0..00b029971f7 100644 --- a/src/agents/command/cli-compaction.test.ts +++ b/src/agents/command/cli-compaction.test.ts @@ -1,7 +1,7 @@ import fs from "node:fs/promises"; import os from "node:os"; import path from "node:path"; -import { CURRENT_SESSION_VERSION } from "@mariozechner/pi-coding-agent"; +import { CURRENT_SESSION_VERSION } from "@earendil-works/pi-coding-agent"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import type { SessionEntry } from "../../config/sessions/types.js"; import type { OpenClawConfig } from "../../config/types.openclaw.js"; diff --git a/src/agents/command/cli-compaction.ts b/src/agents/command/cli-compaction.ts index 52c14818bae..25d90ba7b36 100644 --- a/src/agents/command/cli-compaction.ts +++ b/src/agents/command/cli-compaction.ts @@ -1,5 +1,5 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import { SessionManager } from "@mariozechner/pi-coding-agent"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import { SessionManager } from "@earendil-works/pi-coding-agent"; import type { SessionEntry } from "../../config/sessions/types.js"; import type { AgentCompactionMode } from "../../config/types.agent-defaults.js"; import type { OpenClawConfig } from "../../config/types.openclaw.js"; diff --git a/src/agents/compaction-real-conversation.ts b/src/agents/compaction-real-conversation.ts index 09e2453aafc..85280f9fe0b 100644 --- a/src/agents/compaction-real-conversation.ts +++ b/src/agents/compaction-real-conversation.ts @@ -1,4 +1,4 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; import { stripHeartbeatToken } from "../auto-reply/heartbeat.js"; import { isSilentReplyText } from "../auto-reply/tokens.js"; diff --git a/src/agents/compaction.identifier-preservation.test.ts b/src/agents/compaction.identifier-preservation.test.ts index 957180c72a9..b4f92014d92 100644 --- a/src/agents/compaction.identifier-preservation.test.ts +++ b/src/agents/compaction.identifier-preservation.test.ts @@ -1,10 +1,10 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import type { ExtensionContext } from "@mariozechner/pi-coding-agent"; -import * as piCodingAgent from "@mariozechner/pi-coding-agent"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import type { ExtensionContext } from "@earendil-works/pi-coding-agent"; +import * as piCodingAgent from "@earendil-works/pi-coding-agent"; import { beforeEach, describe, expect, it, vi } from "vitest"; -vi.mock("@mariozechner/pi-coding-agent", async () => { - const actual = await vi.importActual("@mariozechner/pi-coding-agent"); +vi.mock("@earendil-works/pi-coding-agent", async () => { + const actual = await vi.importActual("@earendil-works/pi-coding-agent"); return { ...actual, generateSummary: vi.fn(), diff --git a/src/agents/compaction.retry.test.ts b/src/agents/compaction.retry.test.ts index 91d19cbf6b5..a155743b331 100644 --- a/src/agents/compaction.retry.test.ts +++ b/src/agents/compaction.retry.test.ts @@ -1,13 +1,13 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import type { AssistantMessage, UserMessage } from "@mariozechner/pi-ai"; -import type { ExtensionContext } from "@mariozechner/pi-coding-agent"; -import * as piCodingAgent from "@mariozechner/pi-coding-agent"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import type { AssistantMessage, UserMessage } from "@earendil-works/pi-ai"; +import type { ExtensionContext } from "@earendil-works/pi-coding-agent"; +import * as piCodingAgent from "@earendil-works/pi-coding-agent"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { retryAsync } from "../infra/retry.js"; // Mock the external generateSummary function -vi.mock("@mariozechner/pi-coding-agent", async () => { - const actual = await vi.importActual("@mariozechner/pi-coding-agent"); +vi.mock("@earendil-works/pi-coding-agent", async () => { + const actual = await vi.importActual("@earendil-works/pi-coding-agent"); return { ...actual, generateSummary: vi.fn(), diff --git a/src/agents/compaction.summarize-fallback.test.ts b/src/agents/compaction.summarize-fallback.test.ts index 67a8d13d7b6..13bfe7d4749 100644 --- a/src/agents/compaction.summarize-fallback.test.ts +++ b/src/agents/compaction.summarize-fallback.test.ts @@ -1,6 +1,6 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import type { UserMessage } from "@mariozechner/pi-ai"; -import type { ExtensionContext } from "@mariozechner/pi-coding-agent"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import type { UserMessage } from "@earendil-works/pi-ai"; +import type { ExtensionContext } from "@earendil-works/pi-coding-agent"; import { beforeEach, describe, expect, it, vi } from "vitest"; import { summarizeWithFallback } from "./compaction.js"; @@ -9,9 +9,9 @@ const piCodingAgentMocks = vi.hoisted(() => ({ estimateTokens: vi.fn((_message: unknown) => 100), })); -vi.mock("@mariozechner/pi-coding-agent", async () => { - const actual = await vi.importActual( - "@mariozechner/pi-coding-agent", +vi.mock("@earendil-works/pi-coding-agent", async () => { + const actual = await vi.importActual( + "@earendil-works/pi-coding-agent", ); return { ...actual, diff --git a/src/agents/compaction.test.ts b/src/agents/compaction.test.ts index 2a5db1f9797..13e87875121 100644 --- a/src/agents/compaction.test.ts +++ b/src/agents/compaction.test.ts @@ -1,5 +1,5 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import type { AssistantMessage, ToolResultMessage } from "@mariozechner/pi-ai"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import type { AssistantMessage, ToolResultMessage } from "@earendil-works/pi-ai"; import { beforeAll, describe, expect, it, vi } from "vitest"; import { makeAgentAssistantMessage } from "./test-helpers/agent-message-fixtures.js"; import "./test-helpers/pi-coding-agent-token-mock.js"; diff --git a/src/agents/compaction.token-sanitize.test.ts b/src/agents/compaction.token-sanitize.test.ts index 5c97d890771..bc03f882975 100644 --- a/src/agents/compaction.token-sanitize.test.ts +++ b/src/agents/compaction.token-sanitize.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"; const piCodingAgentMocks = vi.hoisted(() => ({ @@ -6,9 +6,9 @@ const piCodingAgentMocks = vi.hoisted(() => ({ generateSummary: vi.fn(async () => "summary"), })); -vi.mock("@mariozechner/pi-coding-agent", async () => { - const actual = await vi.importActual( - "@mariozechner/pi-coding-agent", +vi.mock("@earendil-works/pi-coding-agent", async () => { + const actual = await vi.importActual( + "@earendil-works/pi-coding-agent", ); return { ...actual, diff --git a/src/agents/compaction.tool-result-details.test.ts b/src/agents/compaction.tool-result-details.test.ts index 391b6bf588b..1adc5ceecaa 100644 --- a/src/agents/compaction.tool-result-details.test.ts +++ b/src/agents/compaction.tool-result-details.test.ts @@ -1,5 +1,5 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import type { AssistantMessage, ToolResultMessage } from "@mariozechner/pi-ai"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import type { AssistantMessage, ToolResultMessage } from "@earendil-works/pi-ai"; import { beforeEach, describe, expect, it, vi } from "vitest"; import { makeAgentAssistantMessage } from "./test-helpers/agent-message-fixtures.js"; @@ -8,9 +8,9 @@ const piCodingAgentMocks = vi.hoisted(() => ({ estimateTokens: vi.fn((_message: unknown) => 1), })); -vi.mock("@mariozechner/pi-coding-agent", async () => { - const actual = await vi.importActual( - "@mariozechner/pi-coding-agent", +vi.mock("@earendil-works/pi-coding-agent", async () => { + const actual = await vi.importActual( + "@earendil-works/pi-coding-agent", ); return { ...actual, diff --git a/src/agents/compaction.ts b/src/agents/compaction.ts index 7a1721aeb8d..158ac484596 100644 --- a/src/agents/compaction.ts +++ b/src/agents/compaction.ts @@ -1,9 +1,9 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import type { ExtensionContext } from "@mariozechner/pi-coding-agent"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import type { ExtensionContext } from "@earendil-works/pi-coding-agent"; import { estimateTokens, generateSummary as piGenerateSummary, -} from "@mariozechner/pi-coding-agent"; +} from "@earendil-works/pi-coding-agent"; import type { AgentCompactionIdentifierPolicy } from "../config/types.agent-defaults.js"; import { formatErrorMessage } from "../infra/errors.js"; import { retryAsync } from "../infra/retry.js"; diff --git a/src/agents/copilot-dynamic-headers.ts b/src/agents/copilot-dynamic-headers.ts index 99f5b2caf1a..210a1d20a7f 100644 --- a/src/agents/copilot-dynamic-headers.ts +++ b/src/agents/copilot-dynamic-headers.ts @@ -1,4 +1,4 @@ -import type { Context } from "@mariozechner/pi-ai"; +import type { Context } from "@earendil-works/pi-ai"; import { COPILOT_INTEGRATION_ID, buildCopilotIdeHeaders } from "../plugin-sdk/provider-auth.js"; export { COPILOT_INTEGRATION_ID, buildCopilotIdeHeaders } from "../plugin-sdk/provider-auth.js"; diff --git a/src/agents/custom-api-registry.test.ts b/src/agents/custom-api-registry.test.ts index 4e22673de07..3b222b2a0e2 100644 --- a/src/agents/custom-api-registry.test.ts +++ b/src/agents/custom-api-registry.test.ts @@ -4,7 +4,7 @@ import { getApiProvider, registerBuiltInApiProviders, unregisterApiProviders, -} from "@mariozechner/pi-ai"; +} from "@earendil-works/pi-ai"; import { afterEach, describe, expect, it, vi } from "vitest"; import { ensureCustomApiRegistered, getCustomApiRegistrySourceId } from "./custom-api-registry.js"; diff --git a/src/agents/custom-api-registry.ts b/src/agents/custom-api-registry.ts index 72c056d6f5a..51d687a4dd7 100644 --- a/src/agents/custom-api-registry.ts +++ b/src/agents/custom-api-registry.ts @@ -1,10 +1,10 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; import { getApiProvider, registerApiProvider, type Api, type StreamOptions, -} from "@mariozechner/pi-ai"; +} from "@earendil-works/pi-ai"; const CUSTOM_API_SOURCE_PREFIX = "openclaw-custom-api:"; diff --git a/src/agents/google-gemini-switch.live.test.ts b/src/agents/google-gemini-switch.live.test.ts index efc275c4d16..5169a164ca9 100644 --- a/src/agents/google-gemini-switch.live.test.ts +++ b/src/agents/google-gemini-switch.live.test.ts @@ -1,4 +1,4 @@ -import { completeSimple, getModel } from "@mariozechner/pi-ai"; +import { completeSimple, getModel } from "@earendil-works/pi-ai"; import { Type } from "typebox"; import { describe, expect, it } from "vitest"; import { isLiveTestEnabled } from "./live-test-helpers.js"; diff --git a/src/agents/harness/codex-app-server-extensions.ts b/src/agents/harness/codex-app-server-extensions.ts index 4aaf14a9b44..aff8f3a7911 100644 --- a/src/agents/harness/codex-app-server-extensions.ts +++ b/src/agents/harness/codex-app-server-extensions.ts @@ -1,4 +1,4 @@ -import type { AgentToolResult } from "@mariozechner/pi-agent-core"; +import type { AgentToolResult } from "@earendil-works/pi-agent-core"; import { createSubsystemLogger } from "../../logging/subsystem.js"; import { listCodexAppServerExtensionFactories } from "../../plugins/codex-app-server-extension-factory.js"; import type { diff --git a/src/agents/harness/context-engine-lifecycle.test.ts b/src/agents/harness/context-engine-lifecycle.test.ts index 77859338c50..597f32f1f34 100644 --- a/src/agents/harness/context-engine-lifecycle.test.ts +++ b/src/agents/harness/context-engine-lifecycle.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 type { ContextEngine } from "../../context-engine/types.js"; import { OPENCLAW_RUNTIME_CONTEXT_CUSTOM_TYPE } from "../internal-runtime-context.js"; diff --git a/src/agents/harness/context-engine-lifecycle.ts b/src/agents/harness/context-engine-lifecycle.ts index 01e4db51a6e..f9c66e47d76 100644 --- a/src/agents/harness/context-engine-lifecycle.ts +++ b/src/agents/harness/context-engine-lifecycle.ts @@ -1,4 +1,4 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; import type { MemoryCitationsMode } from "../../config/types.memory.js"; import type { ContextEngine, ContextEngineRuntimeContext } from "../../context-engine/types.js"; import { stripRuntimeContextCustomMessages } from "../internal-runtime-context.js"; diff --git a/src/agents/harness/hook-helpers.ts b/src/agents/harness/hook-helpers.ts index c3efccf600c..abf8fc8c95a 100644 --- a/src/agents/harness/hook-helpers.ts +++ b/src/agents/harness/hook-helpers.ts @@ -1,4 +1,4 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; import { createSubsystemLogger } from "../../logging/subsystem.js"; import { getGlobalHookRunner } from "../../plugins/hook-runner-global.js"; import { consumeAdjustedParamsForToolCall } from "../pi-tools.before-tool-call.js"; diff --git a/src/agents/harness/prompt-compaction-hook-helpers.ts b/src/agents/harness/prompt-compaction-hook-helpers.ts index df556682985..a9655ffea23 100644 --- a/src/agents/harness/prompt-compaction-hook-helpers.ts +++ b/src/agents/harness/prompt-compaction-hook-helpers.ts @@ -1,4 +1,4 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; import { createSubsystemLogger } from "../../logging/subsystem.js"; import { getGlobalHookRunner } from "../../plugins/hook-runner-global.js"; import type { diff --git a/src/agents/harness/selection.test.ts b/src/agents/harness/selection.test.ts index 2cc81d8e21a..8347a0b28f4 100644 --- a/src/agents/harness/selection.test.ts +++ b/src/agents/harness/selection.test.ts @@ -1,4 +1,4 @@ -import type { Api, Model } from "@mariozechner/pi-ai"; +import type { Api, Model } from "@earendil-works/pi-ai"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import type { OpenClawConfig } from "../../config/config.js"; import type { diff --git a/src/agents/harness/v2.test.ts b/src/agents/harness/v2.test.ts index 9405146df2e..8d9c5a371e1 100644 --- a/src/agents/harness/v2.test.ts +++ b/src/agents/harness/v2.test.ts @@ -1,4 +1,4 @@ -import type { Api, Model } from "@mariozechner/pi-ai"; +import type { Api, Model } from "@earendil-works/pi-ai"; import { afterEach, describe, expect, it, vi } from "vitest"; import { onInternalDiagnosticEvent, diff --git a/src/agents/live-cache-regression-runner.ts b/src/agents/live-cache-regression-runner.ts index ac91ba0f587..3a89cdc4116 100644 --- a/src/agents/live-cache-regression-runner.ts +++ b/src/agents/live-cache-regression-runner.ts @@ -1,6 +1,6 @@ import { randomUUID } from "node:crypto"; import fs from "node:fs/promises"; -import type { AssistantMessage, Message, Tool } from "@mariozechner/pi-ai"; +import type { AssistantMessage, Message, Tool } from "@earendil-works/pi-ai"; import { Type } from "typebox"; import { normalizeLowercaseStringOrEmpty } from "../shared/string-coerce.js"; import { diff --git a/src/agents/live-cache-test-support.ts b/src/agents/live-cache-test-support.ts index 0087100363d..cfad4014ceb 100644 --- a/src/agents/live-cache-test-support.ts +++ b/src/agents/live-cache-test-support.ts @@ -4,7 +4,7 @@ import { type Api, type AssistantMessage, type Model, -} from "@mariozechner/pi-ai"; +} from "@earendil-works/pi-ai"; import { getRuntimeConfig } from "../config/config.js"; import { isTruthyEnvValue } from "../infra/env.js"; import { resolveDefaultAgentDir } from "./agent-scope.js"; diff --git a/src/agents/live-model-turn-probes.ts b/src/agents/live-model-turn-probes.ts index a2279eaf201..03e3caff110 100644 --- a/src/agents/live-model-turn-probes.ts +++ b/src/agents/live-model-turn-probes.ts @@ -1,4 +1,4 @@ -import type { Api, AssistantMessage, Context, Model } from "@mariozechner/pi-ai"; +import type { Api, AssistantMessage, Context, Model } from "@earendil-works/pi-ai"; export const LIVE_MODEL_FILE_PROBE_TOKEN = "opal"; diff --git a/src/agents/minimax.live.test.ts b/src/agents/minimax.live.test.ts index 30c982a791a..37ef3be1434 100644 --- a/src/agents/minimax.live.test.ts +++ b/src/agents/minimax.live.test.ts @@ -1,4 +1,4 @@ -import { completeSimple, type Model } from "@mariozechner/pi-ai"; +import { completeSimple, type Model } from "@earendil-works/pi-ai"; import { describe, expect, it } from "vitest"; import { createSingleUserPromptMessage, diff --git a/src/agents/model-auth.profiles.test.ts b/src/agents/model-auth.profiles.test.ts index 569ee696995..54ced5004c8 100644 --- a/src/agents/model-auth.profiles.test.ts +++ b/src/agents/model-auth.profiles.test.ts @@ -1,7 +1,7 @@ import fs from "node:fs/promises"; import os from "node:os"; import path from "node:path"; -import type { Api, Model } from "@mariozechner/pi-ai"; +import type { Api, Model } from "@earendil-works/pi-ai"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import type { OpenClawConfig } from "../config/types.openclaw.js"; import { withEnvAsync } from "../test-utils/env.js"; diff --git a/src/agents/model-auth.test.ts b/src/agents/model-auth.test.ts index 1c5398a4d63..12cdc1cffa6 100644 --- a/src/agents/model-auth.test.ts +++ b/src/agents/model-auth.test.ts @@ -1,4 +1,4 @@ -import type { Model } from "@mariozechner/pi-ai"; +import type { Model } from "@earendil-works/pi-ai"; import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; import type { ModelProviderConfig } from "../config/config.js"; import type { AuthProfileStore } from "./auth-profiles.js"; diff --git a/src/agents/model-auth.ts b/src/agents/model-auth.ts index 2279ec339b6..015e64bcc55 100644 --- a/src/agents/model-auth.ts +++ b/src/agents/model-auth.ts @@ -1,5 +1,5 @@ import path from "node:path"; -import { type Api, type Model } from "@mariozechner/pi-ai"; +import { type Api, type Model } from "@earendil-works/pi-ai"; import { formatCliCommand } from "../cli/command-format.js"; import { getRuntimeConfigSnapshot } from "../config/config.js"; import type { ModelProviderAuthMode, ModelProviderConfig } from "../config/types.js"; diff --git a/src/agents/model-compat.test.ts b/src/agents/model-compat.test.ts index 9c0cbeba01b..7781a5c6732 100644 --- a/src/agents/model-compat.test.ts +++ b/src/agents/model-compat.test.ts @@ -1,4 +1,4 @@ -import type { Api, Model } from "@mariozechner/pi-ai"; +import type { Api, Model } from "@earendil-works/pi-ai"; import { beforeEach, describe, expect, it, vi } from "vitest"; const providerRuntimeMocks = vi.hoisted(() => ({ diff --git a/src/agents/model-scan.ts b/src/agents/model-scan.ts index de891ef4ec2..e57f8665e06 100644 --- a/src/agents/model-scan.ts +++ b/src/agents/model-scan.ts @@ -6,7 +6,7 @@ import { type Model, type OpenAICompletionsOptions, type Tool, -} from "@mariozechner/pi-ai"; +} from "@earendil-works/pi-ai"; import { Type } from "typebox"; import { formatErrorMessage } from "../infra/errors.js"; import { inferParamBFromIdOrName } from "../shared/model-param-b.js"; diff --git a/src/agents/models.profiles.live.test.ts b/src/agents/models.profiles.live.test.ts index d81aecf5389..12768549902 100644 --- a/src/agents/models.profiles.live.test.ts +++ b/src/agents/models.profiles.live.test.ts @@ -6,7 +6,7 @@ import { getProviders, type KnownProvider, type Model, -} from "@mariozechner/pi-ai"; +} from "@earendil-works/pi-ai"; import { Type } from "typebox"; import { describe, expect, it } from "vitest"; import { getRuntimeConfig } from "../config/config.js"; diff --git a/src/agents/moonshot.live.test.ts b/src/agents/moonshot.live.test.ts index 3c407393863..e8ffb43ab8b 100644 --- a/src/agents/moonshot.live.test.ts +++ b/src/agents/moonshot.live.test.ts @@ -1,4 +1,4 @@ -import { completeSimple, type Model } from "@mariozechner/pi-ai"; +import { completeSimple, type Model } from "@earendil-works/pi-ai"; import { describe, expect, it } from "vitest"; import { createSingleUserPromptMessage, diff --git a/src/agents/openai-completions-compat.ts b/src/agents/openai-completions-compat.ts index a22613af6c5..d4c3431c745 100644 --- a/src/agents/openai-completions-compat.ts +++ b/src/agents/openai-completions-compat.ts @@ -1,4 +1,4 @@ -import type { Model } from "@mariozechner/pi-ai"; +import type { Model } from "@earendil-works/pi-ai"; import type { ProviderEndpointClass, ProviderRequestCapabilities } from "./provider-attribution.js"; import { resolveProviderRequestCapabilities } from "./provider-attribution.js"; diff --git a/src/agents/openai-reasoning-compat.live.test.ts b/src/agents/openai-reasoning-compat.live.test.ts index 36a0d765786..d6339873e44 100644 --- a/src/agents/openai-reasoning-compat.live.test.ts +++ b/src/agents/openai-reasoning-compat.live.test.ts @@ -1,6 +1,6 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import { completeSimple, type Api, type Model } from "@mariozechner/pi-ai"; -import { SessionManager } from "@mariozechner/pi-coding-agent"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import { completeSimple, type Api, type Model } from "@earendil-works/pi-ai"; +import { SessionManager } from "@earendil-works/pi-coding-agent"; import { Type } from "typebox"; import { describe, expect, it } from "vitest"; import { getRuntimeConfig } from "../config/config.js"; diff --git a/src/agents/openai-responses-payload-policy.test.ts b/src/agents/openai-responses-payload-policy.test.ts index 5b618f1ea28..8734d164a60 100644 --- a/src/agents/openai-responses-payload-policy.test.ts +++ b/src/agents/openai-responses-payload-policy.test.ts @@ -1,4 +1,4 @@ -import type { Model } from "@mariozechner/pi-ai"; +import type { Model } from "@earendil-works/pi-ai"; import { describe, expect, it } from "vitest"; import { applyOpenAIResponsesPayloadPolicy, diff --git a/src/agents/openai-responses.reasoning-replay.test.ts b/src/agents/openai-responses.reasoning-replay.test.ts index 2e6ae50d3e5..1dc5ab8cb68 100644 --- a/src/agents/openai-responses.reasoning-replay.test.ts +++ b/src/agents/openai-responses.reasoning-replay.test.ts @@ -1,5 +1,5 @@ -import type { AssistantMessage, Model, ToolResultMessage } from "@mariozechner/pi-ai"; -import { streamOpenAIResponses } from "@mariozechner/pi-ai"; +import type { AssistantMessage, Model, ToolResultMessage } from "@earendil-works/pi-ai"; +import { streamOpenAIResponses } from "@earendil-works/pi-ai"; import { Type } from "typebox"; import { describe, expect, it } from "vitest"; diff --git a/src/agents/openai-thinking-contract.test.ts b/src/agents/openai-thinking-contract.test.ts index 4d4b0a0e101..14bf0a671e2 100644 --- a/src/agents/openai-thinking-contract.test.ts +++ b/src/agents/openai-thinking-contract.test.ts @@ -1,13 +1,13 @@ -import { Agent, type StreamFn } from "@mariozechner/pi-agent-core"; +import { Agent, type StreamFn } from "@earendil-works/pi-agent-core"; import { createAssistantMessageEventStream, type AssistantMessage, type Context, type Model, type SimpleStreamOptions, -} from "@mariozechner/pi-ai"; -import { streamSimpleOpenAICodexResponses } from "@mariozechner/pi-ai/openai-codex-responses"; -import { streamSimpleOpenAIResponses } from "@mariozechner/pi-ai/openai-responses"; +} from "@earendil-works/pi-ai"; +import { streamSimpleOpenAICodexResponses } from "@earendil-works/pi-ai/openai-codex-responses"; +import { streamSimpleOpenAIResponses } from "@earendil-works/pi-ai/openai-responses"; import { describe, expect, it } from "vitest"; type ResponsesModel = Model<"openai-responses"> | Model<"openai-codex-responses">; diff --git a/src/agents/openai-transport-stream.test.ts b/src/agents/openai-transport-stream.test.ts index e0602a6f46c..280049187cb 100644 --- a/src/agents/openai-transport-stream.test.ts +++ b/src/agents/openai-transport-stream.test.ts @@ -1,5 +1,5 @@ import { createServer } from "node:http"; -import type { Model } from "@mariozechner/pi-ai"; +import type { Model } from "@earendil-works/pi-ai"; import { describe, expect, it, vi } from "vitest"; import { buildOpenAIResponsesParams, diff --git a/src/agents/openai-transport-stream.ts b/src/agents/openai-transport-stream.ts index 2143d9f10dd..408c51de168 100644 --- a/src/agents/openai-transport-stream.ts +++ b/src/agents/openai-transport-stream.ts @@ -1,5 +1,5 @@ import { randomUUID } from "node:crypto"; -import type { StreamFn } from "@mariozechner/pi-agent-core"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; import { calculateCost, createAssistantMessageEventStream, @@ -8,8 +8,8 @@ import { type Api, type Context, type Model, -} from "@mariozechner/pi-ai"; -import { convertMessages } from "@mariozechner/pi-ai/openai-completions"; +} from "@earendil-works/pi-ai"; +import { convertMessages } from "@earendil-works/pi-ai/openai-completions"; import OpenAI, { AzureOpenAI } from "openai"; import type { ChatCompletionChunk } from "openai/resources/chat/completions.js"; import type { diff --git a/src/agents/openclaw-owned-tool-runtime-contract.test.ts b/src/agents/openclaw-owned-tool-runtime-contract.test.ts index 607873e4119..23e8cf2dbc7 100644 --- a/src/agents/openclaw-owned-tool-runtime-contract.test.ts +++ b/src/agents/openclaw-owned-tool-runtime-contract.test.ts @@ -1,5 +1,5 @@ -import type { AgentTool } from "@mariozechner/pi-agent-core"; -import type { ExtensionContext } from "@mariozechner/pi-coding-agent"; +import type { AgentTool } from "@earendil-works/pi-agent-core"; +import type { ExtensionContext } from "@earendil-works/pi-coding-agent"; import { installOpenClawOwnedToolHooks, resetOpenClawOwnedToolHooks, diff --git a/src/agents/pi-bundle-lsp-runtime.ts b/src/agents/pi-bundle-lsp-runtime.ts index 315802efb48..f4323846528 100644 --- a/src/agents/pi-bundle-lsp-runtime.ts +++ b/src/agents/pi-bundle-lsp-runtime.ts @@ -1,12 +1,12 @@ import { spawn, type ChildProcess } from "node:child_process"; -import type { AgentToolResult } from "@mariozechner/pi-agent-core"; +import type { AgentToolResult } from "@earendil-works/pi-agent-core"; import type { OpenClawConfig } from "../config/types.openclaw.js"; +import { sanitizeHostExecEnv } from "../infra/host-env-security.js"; import { logDebug, logWarn } from "../logger.js"; import { materializeWindowsSpawnProgram, resolveWindowsSpawnProgram, } from "../plugin-sdk/windows-spawn.js"; -import { sanitizeHostExecEnv } from "../infra/host-env-security.js"; import { setPluginToolMeta } from "../plugins/tools.js"; import { killProcessTree } from "../process/kill-tree.js"; import { normalizeOptionalLowercaseString } from "../shared/string-coerce.js"; diff --git a/src/agents/pi-bundle-mcp-materialize.ts b/src/agents/pi-bundle-mcp-materialize.ts index 4c33286486a..7a77f0cc207 100644 --- a/src/agents/pi-bundle-mcp-materialize.ts +++ b/src/agents/pi-bundle-mcp-materialize.ts @@ -1,5 +1,5 @@ import crypto from "node:crypto"; -import type { AgentToolResult } from "@mariozechner/pi-agent-core"; +import type { AgentToolResult } from "@earendil-works/pi-agent-core"; import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js"; import type { OpenClawConfig } from "../config/types.openclaw.js"; import { logWarn } from "../logger.js"; diff --git a/src/agents/pi-embedded-helpers.formatassistanterrortext.test.ts b/src/agents/pi-embedded-helpers.formatassistanterrortext.test.ts index 9d1a18ee5bc..518131e3c09 100644 --- a/src/agents/pi-embedded-helpers.formatassistanterrortext.test.ts +++ b/src/agents/pi-embedded-helpers.formatassistanterrortext.test.ts @@ -1,4 +1,4 @@ -import type { AssistantMessage } from "@mariozechner/pi-ai"; +import type { AssistantMessage } from "@earendil-works/pi-ai"; import { describe, expect, it } from "vitest"; import { MALFORMED_STREAMING_FRAGMENT_ERROR_MESSAGE } from "../shared/assistant-error-format.js"; import { diff --git a/src/agents/pi-embedded-helpers.sanitize-session-messages-images.removes-empty-assistant-text-blocks-but-preserves.test.ts b/src/agents/pi-embedded-helpers.sanitize-session-messages-images.removes-empty-assistant-text-blocks-but-preserves.test.ts index ab2e42fb777..4ddc09fc69e 100644 --- a/src/agents/pi-embedded-helpers.sanitize-session-messages-images.removes-empty-assistant-text-blocks-but-preserves.test.ts +++ b/src/agents/pi-embedded-helpers.sanitize-session-messages-images.removes-empty-assistant-text-blocks-but-preserves.test.ts @@ -1,5 +1,5 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import type { AssistantMessage, ToolResultMessage, UserMessage } from "@mariozechner/pi-ai"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import type { AssistantMessage, ToolResultMessage, UserMessage } from "@earendil-works/pi-ai"; import { describe, expect, it } from "vitest"; import { sanitizeGoogleTurnOrdering, diff --git a/src/agents/pi-embedded-helpers.validate-turns.test.ts b/src/agents/pi-embedded-helpers.validate-turns.test.ts index 43510040634..ff394804d39 100644 --- a/src/agents/pi-embedded-helpers.validate-turns.test.ts +++ b/src/agents/pi-embedded-helpers.validate-turns.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 { mergeConsecutiveUserTurns, diff --git a/src/agents/pi-embedded-helpers/bootstrap.ts b/src/agents/pi-embedded-helpers/bootstrap.ts index 059bd8ef2c9..76531440174 100644 --- a/src/agents/pi-embedded-helpers/bootstrap.ts +++ b/src/agents/pi-embedded-helpers/bootstrap.ts @@ -1,6 +1,6 @@ import fs from "node:fs/promises"; import path from "node:path"; -import type { AgentMessage } from "@mariozechner/pi-agent-core"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; import type { OpenClawConfig } from "../../config/types.openclaw.js"; import { sanitizeGoogleAssistantFirstOrdering } from "../../shared/google-turn-ordering.js"; import { normalizeOptionalString } from "../../shared/string-coerce.js"; diff --git a/src/agents/pi-embedded-helpers/errors.test.ts b/src/agents/pi-embedded-helpers/errors.test.ts index a8b38d51368..3077bc61317 100644 --- a/src/agents/pi-embedded-helpers/errors.test.ts +++ b/src/agents/pi-embedded-helpers/errors.test.ts @@ -1,4 +1,4 @@ -import type { AssistantMessage } from "@mariozechner/pi-ai"; +import type { AssistantMessage } from "@earendil-works/pi-ai"; import { describe, expect, it } from "vitest"; import { MALFORMED_STREAMING_FRAGMENT_ERROR_MESSAGE } from "../../shared/assistant-error-format.js"; import { makeAssistantMessageFixture } from "../test-helpers/assistant-message-fixtures.js"; diff --git a/src/agents/pi-embedded-helpers/errors.ts b/src/agents/pi-embedded-helpers/errors.ts index 7c40d4df59b..ffdf63a7c19 100644 --- a/src/agents/pi-embedded-helpers/errors.ts +++ b/src/agents/pi-embedded-helpers/errors.ts @@ -1,4 +1,4 @@ -import type { AssistantMessage } from "@mariozechner/pi-ai"; +import type { AssistantMessage } from "@earendil-works/pi-ai"; import type { OpenClawConfig } from "../../config/types.openclaw.js"; import { createSubsystemLogger } from "../../logging/subsystem.js"; import { diff --git a/src/agents/pi-embedded-helpers/images.ts b/src/agents/pi-embedded-helpers/images.ts index 4812642d8f9..d74541a1ab2 100644 --- a/src/agents/pi-embedded-helpers/images.ts +++ b/src/agents/pi-embedded-helpers/images.ts @@ -1,4 +1,4 @@ -import type { AgentMessage, AgentToolResult } from "@mariozechner/pi-agent-core"; +import type { AgentMessage, AgentToolResult } from "@earendil-works/pi-agent-core"; import type { ImageSanitizationLimits } from "../image-sanitization.js"; import type { ToolCallIdMode } from "../tool-call-id.js"; import { sanitizeToolCallIdsForCloudCodeAssist } from "../tool-call-id.js"; diff --git a/src/agents/pi-embedded-helpers/openai.ts b/src/agents/pi-embedded-helpers/openai.ts index 13bfb224876..ab676979b23 100644 --- a/src/agents/pi-embedded-helpers/openai.ts +++ b/src/agents/pi-embedded-helpers/openai.ts @@ -1,4 +1,4 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; type OpenAIThinkingBlock = { type?: unknown; diff --git a/src/agents/pi-embedded-helpers/turns.ts b/src/agents/pi-embedded-helpers/turns.ts index 5c3871f4984..99c7a00e970 100644 --- a/src/agents/pi-embedded-helpers/turns.ts +++ b/src/agents/pi-embedded-helpers/turns.ts @@ -1,4 +1,4 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; import { normalizeOptionalString } from "../../shared/string-coerce.js"; import { extractToolCallsFromAssistant, extractToolResultId } from "../tool-call-id.js"; diff --git a/src/agents/pi-embedded-runner-extraparams-openrouter.test.ts b/src/agents/pi-embedded-runner-extraparams-openrouter.test.ts index bf7a693ddfe..577fad8dfe0 100644 --- a/src/agents/pi-embedded-runner-extraparams-openrouter.test.ts +++ b/src/agents/pi-embedded-runner-extraparams-openrouter.test.ts @@ -1,4 +1,4 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; import { afterEach, beforeEach, describe, expect, it } from "vitest"; import { runExtraParamsPayloadCase } from "./pi-embedded-runner-extraparams.test-support.js"; import { diff --git a/src/agents/pi-embedded-runner-extraparams.live.test.ts b/src/agents/pi-embedded-runner-extraparams.live.test.ts index 18971aa50d5..ab21051561d 100644 --- a/src/agents/pi-embedded-runner-extraparams.live.test.ts +++ b/src/agents/pi-embedded-runner-extraparams.live.test.ts @@ -1,5 +1,5 @@ -import type { Model } from "@mariozechner/pi-ai"; -import { getModel, streamSimple } from "@mariozechner/pi-ai"; +import type { Model } from "@earendil-works/pi-ai"; +import { getModel, streamSimple } from "@earendil-works/pi-ai"; import { describe, expect, it } from "vitest"; import type { OpenClawConfig } from "../config/config.js"; import { isLiveTestEnabled } from "./live-test-helpers.js"; diff --git a/src/agents/pi-embedded-runner-extraparams.test-support.ts b/src/agents/pi-embedded-runner-extraparams.test-support.ts index 69ee942b67f..863e6c75df2 100644 --- a/src/agents/pi-embedded-runner-extraparams.test-support.ts +++ b/src/agents/pi-embedded-runner-extraparams.test-support.ts @@ -1,5 +1,5 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import type { Context, Model } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import type { Context, Model } from "@earendil-works/pi-ai"; import { applyExtraParamsToAgent } from "./pi-embedded-runner/extra-params.js"; export function runExtraParamsPayloadCase(params: { diff --git a/src/agents/pi-embedded-runner-extraparams.test.ts b/src/agents/pi-embedded-runner-extraparams.test.ts index ae56156a918..e8379b60178 100644 --- a/src/agents/pi-embedded-runner-extraparams.test.ts +++ b/src/agents/pi-embedded-runner-extraparams.test.ts @@ -1,5 +1,5 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import type { Context, Model, SimpleStreamOptions } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import type { Context, Model, SimpleStreamOptions } from "@earendil-works/pi-ai"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { __testing as extraParamsTesting } from "./pi-embedded-runner/extra-params.js"; diff --git a/src/agents/pi-embedded-runner.anthropic-tool-replay.live.test.ts b/src/agents/pi-embedded-runner.anthropic-tool-replay.live.test.ts index a7c642ecbce..d2465d5e9f3 100644 --- a/src/agents/pi-embedded-runner.anthropic-tool-replay.live.test.ts +++ b/src/agents/pi-embedded-runner.anthropic-tool-replay.live.test.ts @@ -1,4 +1,4 @@ -import type { Message, Model } from "@mariozechner/pi-ai"; +import type { Message, Model } from "@earendil-works/pi-ai"; import { describe, expect, it, vi } from "vitest"; import { completeSimpleWithLiveTimeout, diff --git a/src/agents/pi-embedded-runner.cache.live.test.ts b/src/agents/pi-embedded-runner.cache.live.test.ts index 77a6eccd579..55cb22637cc 100644 --- a/src/agents/pi-embedded-runner.cache.live.test.ts +++ b/src/agents/pi-embedded-runner.cache.live.test.ts @@ -1,7 +1,7 @@ import fs from "node:fs/promises"; import os from "node:os"; import path from "node:path"; -import type { AssistantMessage, Message, Tool } from "@mariozechner/pi-ai"; +import type { AssistantMessage, Message, Tool } from "@earendil-works/pi-ai"; import { Type } from "typebox"; import { afterAll, beforeAll, describe, expect, it } from "vitest"; import type { OpenClawConfig } from "../config/config.js"; diff --git a/src/agents/pi-embedded-runner.e2e.test.ts b/src/agents/pi-embedded-runner.e2e.test.ts index 71b8a48d68e..bf7deb653ff 100644 --- a/src/agents/pi-embedded-runner.e2e.test.ts +++ b/src/agents/pi-embedded-runner.e2e.test.ts @@ -31,8 +31,9 @@ const ensureOpenClawModelsJsonMock = vi.fn(async () => ({ wrote: false })); const loggerWarnMock = vi.fn(); let refreshRuntimeAuthOnFirstPromptError = false; -vi.mock("@mariozechner/pi-ai", async () => { - const actual = await vi.importActual("@mariozechner/pi-ai"); +vi.mock("@earendil-works/pi-ai", async () => { + const actual = + await vi.importActual("@earendil-works/pi-ai"); const buildAssistantMessage = (model: { api: string; provider: string; id: string }) => ({ role: "assistant" as const, @@ -153,7 +154,7 @@ const installRunEmbeddedMocks = () => { }; let runEmbeddedPiAgent: typeof import("./pi-embedded-runner/run.js").runEmbeddedPiAgent; -let SessionManager: typeof import("@mariozechner/pi-coding-agent").SessionManager; +let SessionManager: typeof import("@earendil-works/pi-coding-agent").SessionManager; let e2eWorkspace: EmbeddedPiRunnerTestWorkspace | undefined; let agentDir: string; let workspaceDir: string; @@ -165,7 +166,7 @@ beforeAll(async () => { vi.resetModules(); installRunEmbeddedMocks(); ({ runEmbeddedPiAgent } = await import("./pi-embedded-runner/run.js")); - ({ SessionManager } = await import("@mariozechner/pi-coding-agent")); + ({ SessionManager } = await import("@earendil-works/pi-coding-agent")); e2eWorkspace = await createEmbeddedPiRunnerTestWorkspace("openclaw-embedded-agent-"); ({ agentDir, workspaceDir } = e2eWorkspace); }, 180_000); diff --git a/src/agents/pi-embedded-runner.extensions.test.ts b/src/agents/pi-embedded-runner.extensions.test.ts index dc949aed8cc..17bcfe88964 100644 --- a/src/agents/pi-embedded-runner.extensions.test.ts +++ b/src/agents/pi-embedded-runner.extensions.test.ts @@ -1,4 +1,4 @@ -import { SessionManager } from "@mariozechner/pi-coding-agent"; +import { SessionManager } from "@earendil-works/pi-coding-agent"; import { afterEach, describe, expect, it } from "vitest"; import { createEmptyPluginRegistry } from "../plugins/registry.js"; import { setActivePluginRegistry } from "../plugins/runtime.js"; diff --git a/src/agents/pi-embedded-runner.guard.test.ts b/src/agents/pi-embedded-runner.guard.test.ts index fbc1df5bb6f..cfbe9af7b95 100644 --- a/src/agents/pi-embedded-runner.guard.test.ts +++ b/src/agents/pi-embedded-runner.guard.test.ts @@ -1,5 +1,5 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import { SessionManager } from "@mariozechner/pi-coding-agent"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import { SessionManager } from "@earendil-works/pi-coding-agent"; import { describe, expect, it } from "vitest"; import type { OpenClawConfig } from "../config/types.openclaw.js"; import { guardSessionManager } from "./session-tool-result-guard-wrapper.js"; diff --git a/src/agents/pi-embedded-runner.guard.waitforidle-before-flush.test.ts b/src/agents/pi-embedded-runner.guard.waitforidle-before-flush.test.ts index a4e189d6b49..c2b2521dde8 100644 --- a/src/agents/pi-embedded-runner.guard.waitforidle-before-flush.test.ts +++ b/src/agents/pi-embedded-runner.guard.waitforidle-before-flush.test.ts @@ -1,5 +1,5 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import { SessionManager } from "@mariozechner/pi-coding-agent"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import { SessionManager } from "@earendil-works/pi-coding-agent"; import { afterEach, describe, expect, it, vi } from "vitest"; import { flushPendingToolResultsAfterIdle } from "./pi-embedded-runner/wait-for-idle-before-flush.js"; import { guardSessionManager } from "./session-tool-result-guard-wrapper.js"; diff --git a/src/agents/pi-embedded-runner.limithistoryturns.test.ts b/src/agents/pi-embedded-runner.limithistoryturns.test.ts index 811fa2e13f1..0cd5ccfc79e 100644 --- a/src/agents/pi-embedded-runner.limithistoryturns.test.ts +++ b/src/agents/pi-embedded-runner.limithistoryturns.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 { limitHistoryTurns } from "./pi-embedded-runner/history.js"; diff --git a/src/agents/pi-embedded-runner.openai-tool-id-preservation.test.ts b/src/agents/pi-embedded-runner.openai-tool-id-preservation.test.ts index 3ccd73230e3..4008c7113d5 100644 --- a/src/agents/pi-embedded-runner.openai-tool-id-preservation.test.ts +++ b/src/agents/pi-embedded-runner.openai-tool-id-preservation.test.ts @@ -1,4 +1,4 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; import { beforeAll, describe, expect, it, vi } from "vitest"; import { createSanitizeSessionHistoryHelpersMock, diff --git a/src/agents/pi-embedded-runner.run-embedded-pi-agent.auth-profile-rotation.e2e.test.ts b/src/agents/pi-embedded-runner.run-embedded-pi-agent.auth-profile-rotation.e2e.test.ts index 5c92d094d9d..28908cecdd0 100644 --- a/src/agents/pi-embedded-runner.run-embedded-pi-agent.auth-profile-rotation.e2e.test.ts +++ b/src/agents/pi-embedded-runner.run-embedded-pi-agent.auth-profile-rotation.e2e.test.ts @@ -1,7 +1,7 @@ import fs from "node:fs/promises"; import os from "node:os"; import path from "node:path"; -import type { AssistantMessage } from "@mariozechner/pi-ai"; +import type { AssistantMessage } from "@earendil-works/pi-ai"; import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; import type { OpenClawConfig } from "../config/config.js"; import { redactIdentifier } from "../logging/redact-identifier.js"; diff --git a/src/agents/pi-embedded-runner.sanitize-session-history.test-harness.ts b/src/agents/pi-embedded-runner.sanitize-session-history.test-harness.ts index a1e0ccb1876..37ad741f1dc 100644 --- a/src/agents/pi-embedded-runner.sanitize-session-history.test-harness.ts +++ b/src/agents/pi-embedded-runner.sanitize-session-history.test-harness.ts @@ -1,5 +1,5 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import type { SessionManager } from "@mariozechner/pi-coding-agent"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import type { SessionManager } from "@earendil-works/pi-coding-agent"; import { expect, vi } from "vitest"; import type { TranscriptPolicy } from "./transcript-policy.js"; diff --git a/src/agents/pi-embedded-runner.sanitize-session-history.test.ts b/src/agents/pi-embedded-runner.sanitize-session-history.test.ts index f3f0e505e65..8194769bc6b 100644 --- a/src/agents/pi-embedded-runner.sanitize-session-history.test.ts +++ b/src/agents/pi-embedded-runner.sanitize-session-history.test.ts @@ -1,5 +1,5 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import type { AssistantMessage, UserMessage, Usage } from "@mariozechner/pi-ai"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import type { AssistantMessage, UserMessage, Usage } from "@earendil-works/pi-ai"; import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; import { expectOpenAIResponsesStrictSanitizeCall, diff --git a/src/agents/pi-embedded-runner/anthropic-family-tool-payload-compat.ts b/src/agents/pi-embedded-runner/anthropic-family-tool-payload-compat.ts index 96990cc76df..d1970061e3d 100644 --- a/src/agents/pi-embedded-runner/anthropic-family-tool-payload-compat.ts +++ b/src/agents/pi-embedded-runner/anthropic-family-tool-payload-compat.ts @@ -1,5 +1,5 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import { streamSimple } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import { streamSimple } from "@earendil-works/pi-ai"; import { normalizeOptionalString } from "../../shared/string-coerce.js"; type AnthropicToolSchemaMode = "openai-functions"; type AnthropicToolChoiceMode = "openai-string-modes"; diff --git a/src/agents/pi-embedded-runner/compact.hooks.harness.ts b/src/agents/pi-embedded-runner/compact.hooks.harness.ts index b7b6473a4aa..94d03297132 100644 --- a/src/agents/pi-embedded-runner/compact.hooks.harness.ts +++ b/src/agents/pi-embedded-runner/compact.hooks.harness.ts @@ -359,9 +359,9 @@ export async function loadCompactHooksHarness(): Promise<{ }; }); - vi.doMock("@mariozechner/pi-ai/oauth", async () => { - const actual = await vi.importActual( - "@mariozechner/pi-ai/oauth", + vi.doMock("@earendil-works/pi-ai/oauth", async () => { + const actual = await vi.importActual( + "@earendil-works/pi-ai/oauth", ); return { ...actual, @@ -370,7 +370,7 @@ export async function loadCompactHooksHarness(): Promise<{ }; }); - vi.doMock("@mariozechner/pi-coding-agent", () => ({ + vi.doMock("@earendil-works/pi-coding-agent", () => ({ AuthStorage: function AuthStorage() {}, ModelRegistry: function ModelRegistry() {}, createAgentSession: vi.fn(async () => { diff --git a/src/agents/pi-embedded-runner/compact.hooks.test.ts b/src/agents/pi-embedded-runner/compact.hooks.test.ts index b4e47d1775d..22a1245b9d5 100644 --- a/src/agents/pi-embedded-runner/compact.hooks.test.ts +++ b/src/agents/pi-embedded-runner/compact.hooks.test.ts @@ -1,4 +1,4 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; import { applyExtraParamsToAgentMock, diff --git a/src/agents/pi-embedded-runner/compact.ts b/src/agents/pi-embedded-runner/compact.ts index 2ed90892bd6..36394c6b1a4 100644 --- a/src/agents/pi-embedded-runner/compact.ts +++ b/src/agents/pi-embedded-runner/compact.ts @@ -1,12 +1,12 @@ import fs from "node:fs/promises"; import os from "node:os"; -import type { AgentMessage } from "@mariozechner/pi-agent-core"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; import { createAgentSession, DefaultResourceLoader, estimateTokens, SessionManager, -} from "@mariozechner/pi-coding-agent"; +} from "@earendil-works/pi-coding-agent"; import { isAcpRuntimeSpawnAvailable } from "../../acp/runtime/availability.js"; import type { ThinkLevel } from "../../auto-reply/thinking.js"; import { resolveAgentModelFallbackValues } from "../../config/model-input.js"; diff --git a/src/agents/pi-embedded-runner/compaction-hooks.ts b/src/agents/pi-embedded-runner/compaction-hooks.ts index a410d348d4e..8efdd666456 100644 --- a/src/agents/pi-embedded-runner/compaction-hooks.ts +++ b/src/agents/pi-embedded-runner/compaction-hooks.ts @@ -1,4 +1,4 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; import type { OpenClawConfig } from "../../config/types.openclaw.js"; import { createInternalHookEvent, triggerInternalHook } from "../../hooks/internal-hooks.js"; import { formatErrorMessage } from "../../infra/errors.js"; diff --git a/src/agents/pi-embedded-runner/compaction-successor-transcript.test.ts b/src/agents/pi-embedded-runner/compaction-successor-transcript.test.ts index c03ad2fdd69..aa94b7cd5cb 100644 --- a/src/agents/pi-embedded-runner/compaction-successor-transcript.test.ts +++ b/src/agents/pi-embedded-runner/compaction-successor-transcript.test.ts @@ -1,7 +1,7 @@ import fs from "node:fs/promises"; import os from "node:os"; import path from "node:path"; -import { SessionManager } from "@mariozechner/pi-coding-agent"; +import { SessionManager } from "@earendil-works/pi-coding-agent"; import { afterEach, describe, expect, it, vi } from "vitest"; import { makeAgentAssistantMessage } from "../test-helpers/agent-message-fixtures.js"; import { diff --git a/src/agents/pi-embedded-runner/compaction-successor-transcript.ts b/src/agents/pi-embedded-runner/compaction-successor-transcript.ts index eebe56251ee..651453c00aa 100644 --- a/src/agents/pi-embedded-runner/compaction-successor-transcript.ts +++ b/src/agents/pi-embedded-runner/compaction-successor-transcript.ts @@ -5,7 +5,7 @@ import { type CompactionEntry, type SessionEntry, type SessionHeader, -} from "@mariozechner/pi-coding-agent"; +} from "@earendil-works/pi-coding-agent"; import type { OpenClawConfig } from "../../config/types.openclaw.js"; import { collectDuplicateUserMessageEntryIdsForCompaction } from "./compaction-duplicate-user-messages.js"; import { diff --git a/src/agents/pi-embedded-runner/extensions.test.ts b/src/agents/pi-embedded-runner/extensions.test.ts index 239274e2700..9b1fc90f916 100644 --- a/src/agents/pi-embedded-runner/extensions.test.ts +++ b/src/agents/pi-embedded-runner/extensions.test.ts @@ -1,5 +1,5 @@ -import type { Api, Model } from "@mariozechner/pi-ai"; -import type { SessionManager } from "@mariozechner/pi-coding-agent"; +import type { Api, Model } from "@earendil-works/pi-ai"; +import type { SessionManager } from "@earendil-works/pi-coding-agent"; import { describe, expect, it, vi } from "vitest"; import type { OpenClawConfig } from "../../config/config.js"; import { getCompactionSafeguardRuntime } from "../pi-hooks/compaction-safeguard-runtime.js"; diff --git a/src/agents/pi-embedded-runner/extensions.ts b/src/agents/pi-embedded-runner/extensions.ts index fa88f47d934..89c7b015db6 100644 --- a/src/agents/pi-embedded-runner/extensions.ts +++ b/src/agents/pi-embedded-runner/extensions.ts @@ -1,6 +1,6 @@ import { randomUUID } from "node:crypto"; -import type { AgentToolResult } from "@mariozechner/pi-agent-core"; -import type { ExtensionFactory, SessionManager } from "@mariozechner/pi-coding-agent"; +import type { AgentToolResult } from "@earendil-works/pi-agent-core"; +import type { ExtensionFactory, SessionManager } from "@earendil-works/pi-coding-agent"; import type { OpenClawConfig } from "../../config/types.openclaw.js"; import type { ProviderRuntimeModel } from "../../plugins/provider-runtime-model.types.js"; import { resolveContextWindowInfo } from "../context-window-guard.js"; diff --git a/src/agents/pi-embedded-runner/extra-params.cache-retention-default.test.ts b/src/agents/pi-embedded-runner/extra-params.cache-retention-default.test.ts index d011590e90d..b39a6a11293 100644 --- a/src/agents/pi-embedded-runner/extra-params.cache-retention-default.test.ts +++ b/src/agents/pi-embedded-runner/extra-params.cache-retention-default.test.ts @@ -1,4 +1,4 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { createPiAiStreamSimpleMock } from "../../../test/helpers/agents/pi-ai-stream-simple-mock.js"; import { isOpenRouterAnthropicModelRef } from "./anthropic-family-cache-semantics.js"; @@ -39,7 +39,7 @@ vi.mock("./logger.js", () => ({ }, })); -vi.mock("@mariozechner/pi-ai", () => createPiAiStreamSimpleMock()); +vi.mock("@earendil-works/pi-ai", () => createPiAiStreamSimpleMock()); beforeEach(() => { extraParamsTesting.setProviderRuntimeDepsForTest({ diff --git a/src/agents/pi-embedded-runner/extra-params.google.test.ts b/src/agents/pi-embedded-runner/extra-params.google.test.ts index 23724bc09f0..32a5d878b74 100644 --- a/src/agents/pi-embedded-runner/extra-params.google.test.ts +++ b/src/agents/pi-embedded-runner/extra-params.google.test.ts @@ -1,10 +1,10 @@ -import type { Model } from "@mariozechner/pi-ai"; +import type { Model } from "@earendil-works/pi-ai"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { createPiAiStreamSimpleMock } from "../../../test/helpers/agents/pi-ai-stream-simple-mock.js"; import { __testing as extraParamsTesting } from "./extra-params.js"; import { runExtraParamsCase } from "./extra-params.test-support.js"; -vi.mock("@mariozechner/pi-ai", () => createPiAiStreamSimpleMock()); +vi.mock("@earendil-works/pi-ai", () => createPiAiStreamSimpleMock()); beforeEach(() => { extraParamsTesting.setProviderRuntimeDepsForTest({ diff --git a/src/agents/pi-embedded-runner/extra-params.kilocode.test.ts b/src/agents/pi-embedded-runner/extra-params.kilocode.test.ts index 6dcd7a96298..221eb59bf03 100644 --- a/src/agents/pi-embedded-runner/extra-params.kilocode.test.ts +++ b/src/agents/pi-embedded-runner/extra-params.kilocode.test.ts @@ -1,5 +1,5 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import type { Context, Model, SimpleStreamOptions } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import type { Context, Model, SimpleStreamOptions } from "@earendil-works/pi-ai"; import { afterEach, describe, expect, it } from "vitest"; import { captureEnv } from "../../test-utils/env.js"; import { createKilocodeWrapper, isProxyReasoningUnsupported } from "./proxy-stream-wrappers.js"; diff --git a/src/agents/pi-embedded-runner/extra-params.openrouter-cache-control.test.ts b/src/agents/pi-embedded-runner/extra-params.openrouter-cache-control.test.ts index 30778636cda..913155be468 100644 --- a/src/agents/pi-embedded-runner/extra-params.openrouter-cache-control.test.ts +++ b/src/agents/pi-embedded-runner/extra-params.openrouter-cache-control.test.ts @@ -1,4 +1,4 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; import { describe, expect, it } from "vitest"; import { createOpenRouterSystemCacheWrapper } from "./proxy-stream-wrappers.js"; diff --git a/src/agents/pi-embedded-runner/extra-params.provider-runtime.test.ts b/src/agents/pi-embedded-runner/extra-params.provider-runtime.test.ts index 4025bec5928..22c8dccdf30 100644 --- a/src/agents/pi-embedded-runner/extra-params.provider-runtime.test.ts +++ b/src/agents/pi-embedded-runner/extra-params.provider-runtime.test.ts @@ -1,4 +1,4 @@ -import type { Model } from "@mariozechner/pi-ai"; +import type { Model } from "@earendil-works/pi-ai"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { createPiAiStreamSimpleMock } from "../../../test/helpers/agents/pi-ai-stream-simple-mock.js"; import { @@ -8,7 +8,7 @@ import { } from "./extra-params.js"; import { runExtraParamsCase } from "./extra-params.test-support.js"; -vi.mock("@mariozechner/pi-ai", () => createPiAiStreamSimpleMock()); +vi.mock("@earendil-works/pi-ai", () => createPiAiStreamSimpleMock()); beforeEach(() => { extraParamsTesting.setProviderRuntimeDepsForTest({ diff --git a/src/agents/pi-embedded-runner/extra-params.test-support.ts b/src/agents/pi-embedded-runner/extra-params.test-support.ts index 72bce1bcf84..69ce673bfbb 100644 --- a/src/agents/pi-embedded-runner/extra-params.test-support.ts +++ b/src/agents/pi-embedded-runner/extra-params.test-support.ts @@ -1,5 +1,5 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import type { Context, Model, SimpleStreamOptions } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import type { Context, Model, SimpleStreamOptions } from "@earendil-works/pi-ai"; import type { ThinkLevel } from "../../auto-reply/thinking.shared.js"; import type { OpenClawConfig } from "../../config/types.openclaw.js"; import { __testing as extraParamsTesting, applyExtraParamsToAgent } from "./extra-params.js"; diff --git a/src/agents/pi-embedded-runner/extra-params.ts b/src/agents/pi-embedded-runner/extra-params.ts index 4cfad2be6e1..5fc9bcea7e7 100644 --- a/src/agents/pi-embedded-runner/extra-params.ts +++ b/src/agents/pi-embedded-runner/extra-params.ts @@ -1,7 +1,7 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import type { SimpleStreamOptions } from "@mariozechner/pi-ai"; -import { streamSimple } from "@mariozechner/pi-ai"; -import type { SettingsManager } from "@mariozechner/pi-coding-agent"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import type { SimpleStreamOptions } from "@earendil-works/pi-ai"; +import { streamSimple } from "@earendil-works/pi-ai"; +import type { SettingsManager } from "@earendil-works/pi-coding-agent"; import type { ThinkLevel } from "../../auto-reply/thinking.js"; import type { OpenClawConfig } from "../../config/types.openclaw.js"; import { createDeepSeekV4OpenAICompatibleThinkingWrapper } from "../../plugin-sdk/provider-stream-shared.js"; diff --git a/src/agents/pi-embedded-runner/extra-params.zai-tool-stream.test.ts b/src/agents/pi-embedded-runner/extra-params.zai-tool-stream.test.ts index 035b2c89267..f69eba7d2ec 100644 --- a/src/agents/pi-embedded-runner/extra-params.zai-tool-stream.test.ts +++ b/src/agents/pi-embedded-runner/extra-params.zai-tool-stream.test.ts @@ -1,9 +1,9 @@ -import type { Model, SimpleStreamOptions } from "@mariozechner/pi-ai"; +import type { Model, SimpleStreamOptions } from "@earendil-works/pi-ai"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { createPiAiStreamSimpleMock } from "../../../test/helpers/agents/pi-ai-stream-simple-mock.js"; import type { OpenClawConfig } from "../../config/config.js"; -vi.mock("@mariozechner/pi-ai", () => createPiAiStreamSimpleMock()); +vi.mock("@earendil-works/pi-ai", () => createPiAiStreamSimpleMock()); let runExtraParamsCase: typeof import("./extra-params.test-support.js").runExtraParamsCase; let extraParamsTesting: typeof import("./extra-params.js").__testing; diff --git a/src/agents/pi-embedded-runner/google-prompt-cache.test.ts b/src/agents/pi-embedded-runner/google-prompt-cache.test.ts index 907d1cef0cd..b2ac83239ac 100644 --- a/src/agents/pi-embedded-runner/google-prompt-cache.test.ts +++ b/src/agents/pi-embedded-runner/google-prompt-cache.test.ts @@ -1,6 +1,6 @@ import crypto from "node:crypto"; -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import type { Model } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import type { Model } from "@earendil-works/pi-ai"; import { describe, expect, it, vi } from "vitest"; import { prepareGooglePromptCacheStreamFn } from "./google-prompt-cache.js"; diff --git a/src/agents/pi-embedded-runner/google-prompt-cache.ts b/src/agents/pi-embedded-runner/google-prompt-cache.ts index 7755e46be24..2d0e412c731 100644 --- a/src/agents/pi-embedded-runner/google-prompt-cache.ts +++ b/src/agents/pi-embedded-runner/google-prompt-cache.ts @@ -1,6 +1,6 @@ import crypto from "node:crypto"; -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import type { Api, Model } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import type { Api, Model } from "@earendil-works/pi-ai"; import { parseGeminiAuth } from "../../infra/gemini-auth.js"; import { normalizeGoogleApiBaseUrl } from "../../infra/google-api-base-url.js"; import { normalizeOptionalString } from "../../shared/string-coerce.js"; diff --git a/src/agents/pi-embedded-runner/history.ts b/src/agents/pi-embedded-runner/history.ts index 55c9a0ef2b6..bad1f48d5ab 100644 --- a/src/agents/pi-embedded-runner/history.ts +++ b/src/agents/pi-embedded-runner/history.ts @@ -1,4 +1,4 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; import type { OpenClawConfig } from "../../config/types.openclaw.js"; import { normalizeOptionalLowercaseString } from "../../shared/string-coerce.js"; import { normalizeProviderId } from "../provider-id.js"; diff --git a/src/agents/pi-embedded-runner/manual-compaction-boundary.test.ts b/src/agents/pi-embedded-runner/manual-compaction-boundary.test.ts index c4e2567ddb3..4a95c9c8ce6 100644 --- a/src/agents/pi-embedded-runner/manual-compaction-boundary.test.ts +++ b/src/agents/pi-embedded-runner/manual-compaction-boundary.test.ts @@ -1,9 +1,9 @@ import fs from "node:fs/promises"; import os from "node:os"; import path from "node:path"; -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import type { AssistantMessage } from "@mariozechner/pi-ai"; -import { SessionManager } from "@mariozechner/pi-coding-agent"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import type { AssistantMessage } from "@earendil-works/pi-ai"; +import { SessionManager } from "@earendil-works/pi-coding-agent"; import { afterEach, describe, expect, it, vi } from "vitest"; import { hardenManualCompactionBoundary } from "./manual-compaction-boundary.js"; diff --git a/src/agents/pi-embedded-runner/manual-compaction-boundary.ts b/src/agents/pi-embedded-runner/manual-compaction-boundary.ts index 2a1ebb05361..dd5fe449941 100644 --- a/src/agents/pi-embedded-runner/manual-compaction-boundary.ts +++ b/src/agents/pi-embedded-runner/manual-compaction-boundary.ts @@ -1,5 +1,5 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import type { SessionEntry } from "@mariozechner/pi-coding-agent"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import type { SessionEntry } from "@earendil-works/pi-coding-agent"; import { readTranscriptFileState, TranscriptFileState, diff --git a/src/agents/pi-embedded-runner/minimax-stream-wrappers.test.ts b/src/agents/pi-embedded-runner/minimax-stream-wrappers.test.ts index 9b2934a43f0..1b515f529b0 100644 --- a/src/agents/pi-embedded-runner/minimax-stream-wrappers.test.ts +++ b/src/agents/pi-embedded-runner/minimax-stream-wrappers.test.ts @@ -1,5 +1,5 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import type { Context, Model } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import type { Context, Model } from "@earendil-works/pi-ai"; import { describe, expect, it } from "vitest"; import { createMinimaxFastModeWrapper, diff --git a/src/agents/pi-embedded-runner/minimax-stream-wrappers.ts b/src/agents/pi-embedded-runner/minimax-stream-wrappers.ts index b8a6e37071d..cd216daf4e6 100644 --- a/src/agents/pi-embedded-runner/minimax-stream-wrappers.ts +++ b/src/agents/pi-embedded-runner/minimax-stream-wrappers.ts @@ -1,5 +1,5 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import { streamSimple } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import { streamSimple } from "@earendil-works/pi-ai"; const MINIMAX_FAST_MODEL_IDS = new Map([ ["MiniMax-M2.7", "MiniMax-M2.7-highspeed"], diff --git a/src/agents/pi-embedded-runner/model-context-tokens.ts b/src/agents/pi-embedded-runner/model-context-tokens.ts index 1aa623d3f41..1f81ff34d32 100644 --- a/src/agents/pi-embedded-runner/model-context-tokens.ts +++ b/src/agents/pi-embedded-runner/model-context-tokens.ts @@ -1,4 +1,4 @@ -import type { Api, Model } from "@mariozechner/pi-ai"; +import type { Api, Model } from "@earendil-works/pi-ai"; type PiModelWithOptionalContextTokens = Model & { contextTokens?: number; diff --git a/src/agents/pi-embedded-runner/model.inline-provider.ts b/src/agents/pi-embedded-runner/model.inline-provider.ts index ff2ea274ae1..a439870fd0d 100644 --- a/src/agents/pi-embedded-runner/model.inline-provider.ts +++ b/src/agents/pi-embedded-runner/model.inline-provider.ts @@ -1,4 +1,4 @@ -import type { Api } from "@mariozechner/pi-ai"; +import type { Api } from "@earendil-works/pi-ai"; import type { ModelDefinitionConfig, ModelProviderConfig } from "../../config/types.js"; import { normalizeGoogleApiBaseUrl } from "../../infra/google-api-base-url.js"; import { normalizeOptionalLowercaseString } from "../../shared/string-coerce.js"; diff --git a/src/agents/pi-embedded-runner/model.provider-normalization.ts b/src/agents/pi-embedded-runner/model.provider-normalization.ts index b6090379c96..f73b85ff2e2 100644 --- a/src/agents/pi-embedded-runner/model.provider-normalization.ts +++ b/src/agents/pi-embedded-runner/model.provider-normalization.ts @@ -1,4 +1,4 @@ -import type { Api, Model } from "@mariozechner/pi-ai"; +import type { Api, Model } from "@earendil-works/pi-ai"; import { normalizeModelCompat } from "../../plugins/provider-model-compat.js"; export function normalizeResolvedProviderModel(params: { diff --git a/src/agents/pi-embedded-runner/model.static-catalog.ts b/src/agents/pi-embedded-runner/model.static-catalog.ts index 7dfc417b5bc..7f60033fdce 100644 --- a/src/agents/pi-embedded-runner/model.static-catalog.ts +++ b/src/agents/pi-embedded-runner/model.static-catalog.ts @@ -1,4 +1,4 @@ -import type { Api, Model } from "@mariozechner/pi-ai"; +import type { Api, Model } from "@earendil-works/pi-ai"; import type { OpenClawConfig } from "../../config/types.openclaw.js"; import { planManifestModelCatalogRows } from "../../model-catalog/manifest-planner.js"; import type { NormalizedModelCatalogRow } from "../../model-catalog/types.js"; diff --git a/src/agents/pi-embedded-runner/model.ts b/src/agents/pi-embedded-runner/model.ts index 6e0c965ef33..fc9a573285a 100644 --- a/src/agents/pi-embedded-runner/model.ts +++ b/src/agents/pi-embedded-runner/model.ts @@ -1,10 +1,10 @@ -import type { Api, Model } from "@mariozechner/pi-ai"; +import type { Api, Model } from "@earendil-works/pi-ai"; import { AuthStorage as PiAuthStorageClass, ModelRegistry as PiModelRegistryClass, type AuthStorage, type ModelRegistry, -} from "@mariozechner/pi-coding-agent"; +} from "@earendil-works/pi-coding-agent"; import type { OpenClawConfig } from "../../config/types.openclaw.js"; import type { ProviderRuntimeModel } from "../../plugins/provider-runtime-model.types.js"; import { diff --git a/src/agents/pi-embedded-runner/moonshot-stream-wrappers.ts b/src/agents/pi-embedded-runner/moonshot-stream-wrappers.ts index e6cd30048c5..9d08febff76 100644 --- a/src/agents/pi-embedded-runner/moonshot-stream-wrappers.ts +++ b/src/agents/pi-embedded-runner/moonshot-stream-wrappers.ts @@ -1,5 +1,5 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import { streamSimple } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import { streamSimple } from "@earendil-works/pi-ai"; import type { ThinkLevel } from "../../auto-reply/thinking.js"; import { streamWithPayloadPatch } from "./stream-payload-utils.js"; diff --git a/src/agents/pi-embedded-runner/moonshot-thinking-stream-wrappers.ts b/src/agents/pi-embedded-runner/moonshot-thinking-stream-wrappers.ts index 5e108ce6bf8..e29464b92df 100644 --- a/src/agents/pi-embedded-runner/moonshot-thinking-stream-wrappers.ts +++ b/src/agents/pi-embedded-runner/moonshot-thinking-stream-wrappers.ts @@ -1,4 +1,4 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; import type { ThinkLevel } from "../../auto-reply/thinking.js"; import { createLazyImportLoader } from "../../shared/lazy-promise.js"; import { normalizeOptionalLowercaseString } from "../../shared/string-coerce.js"; @@ -7,7 +7,7 @@ import { streamWithPayloadPatch } from "./stream-payload-utils.js"; type MoonshotThinkingType = "enabled" | "disabled"; type MoonshotThinkingKeep = "all"; const MOONSHOT_THINKING_KEEP_MODEL_ID = "kimi-k2.6"; -const piAiRuntimeLoader = createLazyImportLoader(() => import("@mariozechner/pi-ai")); +const piAiRuntimeLoader = createLazyImportLoader(() => import("@earendil-works/pi-ai")); async function loadDefaultStreamFn(): Promise { const runtime = await piAiRuntimeLoader.load(); diff --git a/src/agents/pi-embedded-runner/openai-stream-wrappers.test.ts b/src/agents/pi-embedded-runner/openai-stream-wrappers.test.ts index 4d80d0839d6..c9d71516b5c 100644 --- a/src/agents/pi-embedded-runner/openai-stream-wrappers.test.ts +++ b/src/agents/pi-embedded-runner/openai-stream-wrappers.test.ts @@ -1,6 +1,6 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import type { Model } from "@mariozechner/pi-ai"; -import { createAssistantMessageEventStream } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import type { Model } from "@earendil-works/pi-ai"; +import { createAssistantMessageEventStream } from "@earendil-works/pi-ai"; import { describe, expect, it } from "vitest"; import { createOpenAIAttributionHeadersWrapper, diff --git a/src/agents/pi-embedded-runner/openai-stream-wrappers.ts b/src/agents/pi-embedded-runner/openai-stream-wrappers.ts index ce6ab89c772..d08ae3849f8 100644 --- a/src/agents/pi-embedded-runner/openai-stream-wrappers.ts +++ b/src/agents/pi-embedded-runner/openai-stream-wrappers.ts @@ -1,6 +1,6 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import type { SimpleStreamOptions } from "@mariozechner/pi-ai"; -import { streamSimple } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import type { SimpleStreamOptions } from "@earendil-works/pi-ai"; +import { streamSimple } from "@earendil-works/pi-ai"; import type { ThinkLevel } from "../../auto-reply/thinking.js"; import type { OpenClawConfig } from "../../config/types.openclaw.js"; import { normalizeOptionalLowercaseString, readStringValue } from "../../shared/string-coerce.js"; diff --git a/src/agents/pi-embedded-runner/proxy-stream-wrappers.test.ts b/src/agents/pi-embedded-runner/proxy-stream-wrappers.test.ts index d6dbbf7adb8..35a6a3546f3 100644 --- a/src/agents/pi-embedded-runner/proxy-stream-wrappers.test.ts +++ b/src/agents/pi-embedded-runner/proxy-stream-wrappers.test.ts @@ -1,6 +1,6 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import type { Context, Model } from "@mariozechner/pi-ai"; -import { createAssistantMessageEventStream } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import type { Context, Model } from "@earendil-works/pi-ai"; +import { createAssistantMessageEventStream } from "@earendil-works/pi-ai"; import { describe, expect, it } from "vitest"; import { createOpenRouterSystemCacheWrapper, diff --git a/src/agents/pi-embedded-runner/proxy-stream-wrappers.ts b/src/agents/pi-embedded-runner/proxy-stream-wrappers.ts index 5a658728561..cb8d7306802 100644 --- a/src/agents/pi-embedded-runner/proxy-stream-wrappers.ts +++ b/src/agents/pi-embedded-runner/proxy-stream-wrappers.ts @@ -1,5 +1,5 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import { streamSimple } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import { streamSimple } from "@earendil-works/pi-ai"; import type { ThinkLevel } from "../../auto-reply/thinking.js"; import { normalizeOptionalLowercaseString, readStringValue } from "../../shared/string-coerce.js"; import { resolveProviderRequestPolicy } from "../provider-attribution.js"; diff --git a/src/agents/pi-embedded-runner/replay-history.test.ts b/src/agents/pi-embedded-runner/replay-history.test.ts index 4aa0daaba66..0051d42203c 100644 --- a/src/agents/pi-embedded-runner/replay-history.test.ts +++ b/src/agents/pi-embedded-runner/replay-history.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 { normalizeAssistantReplayContent } from "./replay-history.js"; diff --git a/src/agents/pi-embedded-runner/replay-history.ts b/src/agents/pi-embedded-runner/replay-history.ts index df2bff2427a..704c5646c67 100644 --- a/src/agents/pi-embedded-runner/replay-history.ts +++ b/src/agents/pi-embedded-runner/replay-history.ts @@ -1,5 +1,5 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import type { SessionManager } from "@mariozechner/pi-coding-agent"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import type { SessionManager } from "@earendil-works/pi-coding-agent"; import { stripInboundMetadata } from "../../auto-reply/reply/strip-inbound-meta.js"; import type { OpenClawConfig } from "../../config/types.openclaw.js"; import type { ProviderRuntimeModel } from "../../plugins/provider-runtime-model.types.js"; diff --git a/src/agents/pi-embedded-runner/run/assistant-failover.ts b/src/agents/pi-embedded-runner/run/assistant-failover.ts index 1d8a72bf748..00674f20319 100644 --- a/src/agents/pi-embedded-runner/run/assistant-failover.ts +++ b/src/agents/pi-embedded-runner/run/assistant-failover.ts @@ -1,4 +1,4 @@ -import type { AssistantMessage } from "@mariozechner/pi-ai"; +import type { AssistantMessage } from "@earendil-works/pi-ai"; import type { OpenClawConfig } from "../../../config/types.openclaw.js"; import { sanitizeForLog } from "../../../terminal/ansi.js"; import type { AuthProfileFailureReason } from "../../auth-profiles.js"; diff --git a/src/agents/pi-embedded-runner/run/attempt-session.ts b/src/agents/pi-embedded-runner/run/attempt-session.ts index fc45c68cf8b..fe2bbdcbcab 100644 --- a/src/agents/pi-embedded-runner/run/attempt-session.ts +++ b/src/agents/pi-embedded-runner/run/attempt-session.ts @@ -1,4 +1,4 @@ -import type { CreateAgentSessionOptions } from "@mariozechner/pi-coding-agent"; +import type { CreateAgentSessionOptions } from "@earendil-works/pi-coding-agent"; export type EmbeddedAgentSessionOptions = { cwd: string; diff --git a/src/agents/pi-embedded-runner/run/attempt.context-engine-helpers.ts b/src/agents/pi-embedded-runner/run/attempt.context-engine-helpers.ts index 362bc6d1094..e44ae706ab3 100644 --- a/src/agents/pi-embedded-runner/run/attempt.context-engine-helpers.ts +++ b/src/agents/pi-embedded-runner/run/attempt.context-engine-helpers.ts @@ -1,5 +1,5 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import type { AssistantMessage } from "@mariozechner/pi-ai"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import type { AssistantMessage } from "@earendil-works/pi-ai"; import type { ContextEngine } from "../../../context-engine/types.js"; import type { BootstrapMode } from "../../bootstrap-mode.js"; import { normalizeUsage, type NormalizedUsage } from "../../usage.js"; diff --git a/src/agents/pi-embedded-runner/run/attempt.memory-flush-forwarding.test.ts b/src/agents/pi-embedded-runner/run/attempt.memory-flush-forwarding.test.ts index 8e0bbe8b6a9..23651367871 100644 --- a/src/agents/pi-embedded-runner/run/attempt.memory-flush-forwarding.test.ts +++ b/src/agents/pi-embedded-runner/run/attempt.memory-flush-forwarding.test.ts @@ -1,8 +1,8 @@ import fs from "node:fs/promises"; import os from "node:os"; import path from "node:path"; -import type { Api, Model } from "@mariozechner/pi-ai"; -import type { AuthStorage, ModelRegistry } from "@mariozechner/pi-coding-agent"; +import type { Api, Model } from "@earendil-works/pi-ai"; +import type { AuthStorage, ModelRegistry } from "@earendil-works/pi-coding-agent"; import { describe, expect, it, vi } from "vitest"; import type { AnyAgentTool } from "../../pi-tools.types.js"; import { buildEmbeddedAttemptToolRunContext } from "./attempt.tool-run-context.js"; diff --git a/src/agents/pi-embedded-runner/run/attempt.model-diagnostic-events.test.ts b/src/agents/pi-embedded-runner/run/attempt.model-diagnostic-events.test.ts index c6534cfa4d1..90490d8797b 100644 --- a/src/agents/pi-embedded-runner/run/attempt.model-diagnostic-events.test.ts +++ b/src/agents/pi-embedded-runner/run/attempt.model-diagnostic-events.test.ts @@ -1,4 +1,4 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { onInternalDiagnosticEvent, diff --git a/src/agents/pi-embedded-runner/run/attempt.model-diagnostic-events.ts b/src/agents/pi-embedded-runner/run/attempt.model-diagnostic-events.ts index 487f8320b62..1a1fbf0a550 100644 --- a/src/agents/pi-embedded-runner/run/attempt.model-diagnostic-events.ts +++ b/src/agents/pi-embedded-runner/run/attempt.model-diagnostic-events.ts @@ -1,4 +1,4 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; import { fireAndForgetBoundedHook } from "../../../hooks/fire-and-forget.js"; import { diagnosticErrorCategory, diff --git a/src/agents/pi-embedded-runner/run/attempt.sessions-yield.ts b/src/agents/pi-embedded-runner/run/attempt.sessions-yield.ts index 52b20b82090..0f4a3427909 100644 --- a/src/agents/pi-embedded-runner/run/attempt.sessions-yield.ts +++ b/src/agents/pi-embedded-runner/run/attempt.sessions-yield.ts @@ -1,4 +1,4 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; import { log } from "../logger.js"; const SESSIONS_YIELD_INTERRUPT_CUSTOM_TYPE = "openclaw.sessions_yield_interrupt"; diff --git a/src/agents/pi-embedded-runner/run/attempt.spawn-workspace.context-engine.test.ts b/src/agents/pi-embedded-runner/run/attempt.spawn-workspace.context-engine.test.ts index 15f44dff387..891e36f6364 100644 --- a/src/agents/pi-embedded-runner/run/attempt.spawn-workspace.context-engine.test.ts +++ b/src/agents/pi-embedded-runner/run/attempt.spawn-workspace.context-engine.test.ts @@ -1,7 +1,7 @@ import fs from "node:fs/promises"; import os from "node:os"; import path from "node:path"; -import type { AgentMessage } from "@mariozechner/pi-agent-core"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import type { OpenClawConfig } from "../../../config/types.js"; import { buildMemorySystemPromptAddition } from "../../../context-engine/delegate.js"; diff --git a/src/agents/pi-embedded-runner/run/attempt.spawn-workspace.context-injection.test.ts b/src/agents/pi-embedded-runner/run/attempt.spawn-workspace.context-injection.test.ts index 233a2a6975d..f6e2e8fa28d 100644 --- a/src/agents/pi-embedded-runner/run/attempt.spawn-workspace.context-injection.test.ts +++ b/src/agents/pi-embedded-runner/run/attempt.spawn-workspace.context-injection.test.ts @@ -1,4 +1,4 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; import { beforeEach, describe, expect, it, vi } from "vitest"; import { filterHeartbeatPairs } from "../../../auto-reply/heartbeat-filter.js"; import { HEARTBEAT_PROMPT } from "../../../auto-reply/heartbeat.js"; diff --git a/src/agents/pi-embedded-runner/run/attempt.spawn-workspace.test-support.ts b/src/agents/pi-embedded-runner/run/attempt.spawn-workspace.test-support.ts index 40c60df1896..326ea9d5bbc 100644 --- a/src/agents/pi-embedded-runner/run/attempt.spawn-workspace.test-support.ts +++ b/src/agents/pi-embedded-runner/run/attempt.spawn-workspace.test-support.ts @@ -1,8 +1,8 @@ import fs from "node:fs/promises"; import os from "node:os"; import path from "node:path"; -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import type { Api, Model } from "@mariozechner/pi-ai"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import type { Api, Model } from "@earendil-works/pi-ai"; import { expect, vi, type Mock } from "vitest"; import type { AssembleResult, @@ -279,7 +279,7 @@ vi.mock("../../../trajectory/metadata.js", () => ({ buildTrajectoryRunMetadata: () => ({ source: "test" }), })); -vi.mock("@mariozechner/pi-coding-agent", () => { +vi.mock("@earendil-works/pi-coding-agent", () => { function AuthStorage() {} class DefaultResourceLoader { async reload() {} diff --git a/src/agents/pi-embedded-runner/run/attempt.stop-reason-recovery.test.ts b/src/agents/pi-embedded-runner/run/attempt.stop-reason-recovery.test.ts index 9d848bcd05b..1bd28bf1df3 100644 --- a/src/agents/pi-embedded-runner/run/attempt.stop-reason-recovery.test.ts +++ b/src/agents/pi-embedded-runner/run/attempt.stop-reason-recovery.test.ts @@ -1,5 +1,5 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import { createAssistantMessageEventStream, type Context, type Model } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import { createAssistantMessageEventStream, type Context, type Model } from "@earendil-works/pi-ai"; import { describe, expect, it } from "vitest"; import { wrapStreamFnHandleSensitiveStopReason } from "./attempt.stop-reason-recovery.js"; diff --git a/src/agents/pi-embedded-runner/run/attempt.stop-reason-recovery.ts b/src/agents/pi-embedded-runner/run/attempt.stop-reason-recovery.ts index d11627fc93e..792a8961228 100644 --- a/src/agents/pi-embedded-runner/run/attempt.stop-reason-recovery.ts +++ b/src/agents/pi-embedded-runner/run/attempt.stop-reason-recovery.ts @@ -1,5 +1,5 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import { createAssistantMessageEventStream, streamSimple } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import { createAssistantMessageEventStream, streamSimple } from "@earendil-works/pi-ai"; import { formatErrorMessage } from "../../../infra/errors.js"; import { createStreamIteratorWrapper } from "../../stream-iterator-wrapper.js"; import { buildStreamErrorAssistantMessage } from "../../stream-message-shared.js"; diff --git a/src/agents/pi-embedded-runner/run/attempt.test.ts b/src/agents/pi-embedded-runner/run/attempt.test.ts index 427dea289ca..34e5c59b5a3 100644 --- a/src/agents/pi-embedded-runner/run/attempt.test.ts +++ b/src/agents/pi-embedded-runner/run/attempt.test.ts @@ -1,4 +1,4 @@ -import { streamSimple } from "@mariozechner/pi-ai"; +import { streamSimple } from "@earendil-works/pi-ai"; import { describe, expect, it, vi } from "vitest"; vi.mock("../context-engine-capabilities.js", () => ({ diff --git a/src/agents/pi-embedded-runner/run/attempt.tool-call-argument-repair.ts b/src/agents/pi-embedded-runner/run/attempt.tool-call-argument-repair.ts index a63e44303f9..896112a8e7c 100644 --- a/src/agents/pi-embedded-runner/run/attempt.tool-call-argument-repair.ts +++ b/src/agents/pi-embedded-runner/run/attempt.tool-call-argument-repair.ts @@ -1,5 +1,5 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import { streamSimple } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import { streamSimple } from "@earendil-works/pi-ai"; import { extractBalancedJsonPrefix } from "../../../shared/balanced-json.js"; import { normalizeProviderId } from "../../model-selection.js"; import { log } from "../logger.js"; diff --git a/src/agents/pi-embedded-runner/run/attempt.tool-call-normalization.test.ts b/src/agents/pi-embedded-runner/run/attempt.tool-call-normalization.test.ts index 4270a447fc6..9a7b9e9b6fd 100644 --- a/src/agents/pi-embedded-runner/run/attempt.tool-call-normalization.test.ts +++ b/src/agents/pi-embedded-runner/run/attempt.tool-call-normalization.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 { sanitizeReplayToolCallIdsForStream } from "./attempt.tool-call-normalization.js"; diff --git a/src/agents/pi-embedded-runner/run/attempt.tool-call-normalization.ts b/src/agents/pi-embedded-runner/run/attempt.tool-call-normalization.ts index c5e890a02ac..a0541fdfa09 100644 --- a/src/agents/pi-embedded-runner/run/attempt.tool-call-normalization.ts +++ b/src/agents/pi-embedded-runner/run/attempt.tool-call-normalization.ts @@ -1,5 +1,5 @@ -import type { AgentMessage, StreamFn } from "@mariozechner/pi-agent-core"; -import { streamSimple } from "@mariozechner/pi-ai"; +import type { AgentMessage, StreamFn } from "@earendil-works/pi-agent-core"; +import { streamSimple } from "@earendil-works/pi-ai"; import { visitObjectContentBlocks } from "../../../shared/message-content-blocks.js"; import { normalizeLowercaseStringOrEmpty } from "../../../shared/string-coerce.js"; import { validateAnthropicTurns, validateGeminiTurns } from "../../pi-embedded-helpers.js"; diff --git a/src/agents/pi-embedded-runner/run/attempt.ts b/src/agents/pi-embedded-runner/run/attempt.ts index 47a602ca511..0412561dced 100644 --- a/src/agents/pi-embedded-runner/run/attempt.ts +++ b/src/agents/pi-embedded-runner/run/attempt.ts @@ -1,12 +1,12 @@ import fs from "node:fs/promises"; import os from "node:os"; import path from "node:path"; -import type { AgentMessage } from "@mariozechner/pi-agent-core"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; import { createAgentSession, DefaultResourceLoader, SessionManager, -} from "@mariozechner/pi-coding-agent"; +} from "@earendil-works/pi-coding-agent"; import { isAcpRuntimeSpawnAvailable } from "../../../acp/runtime/availability.js"; import { buildHierarchyReinforcementMessage } from "../../../auto-reply/handoff-summarizer.js"; import { filterHeartbeatPairs } from "../../../auto-reply/heartbeat-filter.js"; diff --git a/src/agents/pi-embedded-runner/run/auth-controller.test.ts b/src/agents/pi-embedded-runner/run/auth-controller.test.ts index c786dfbbc31..49752379b6b 100644 --- a/src/agents/pi-embedded-runner/run/auth-controller.test.ts +++ b/src/agents/pi-embedded-runner/run/auth-controller.test.ts @@ -1,4 +1,4 @@ -import type { Api, Model } from "@mariozechner/pi-ai"; +import type { Api, Model } from "@earendil-works/pi-ai"; import { beforeEach, describe, expect, it, vi, type Mock } from "vitest"; import type { AuthProfileStore } from "../../auth-profiles.js"; import type { RuntimeAuthState } from "./helpers.js"; diff --git a/src/agents/pi-embedded-runner/run/auth-controller.ts b/src/agents/pi-embedded-runner/run/auth-controller.ts index 00c0752381f..055ae8c54c0 100644 --- a/src/agents/pi-embedded-runner/run/auth-controller.ts +++ b/src/agents/pi-embedded-runner/run/auth-controller.ts @@ -1,4 +1,4 @@ -import type { Api, Model } from "@mariozechner/pi-ai"; +import type { Api, Model } from "@earendil-works/pi-ai"; import type { ThinkLevel } from "../../../auto-reply/thinking.js"; import { formatErrorMessage } from "../../../infra/errors.js"; import { prepareProviderRuntimeAuth } from "../../../plugins/provider-runtime.js"; diff --git a/src/agents/pi-embedded-runner/run/compaction-timeout.ts b/src/agents/pi-embedded-runner/run/compaction-timeout.ts index 97e1dfff4e3..4f8691e8fd0 100644 --- a/src/agents/pi-embedded-runner/run/compaction-timeout.ts +++ b/src/agents/pi-embedded-runner/run/compaction-timeout.ts @@ -1,4 +1,4 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; export type CompactionTimeoutSignal = { isTimeout: boolean; diff --git a/src/agents/pi-embedded-runner/run/helpers.test.ts b/src/agents/pi-embedded-runner/run/helpers.test.ts index f744042ae11..19872908427 100644 --- a/src/agents/pi-embedded-runner/run/helpers.test.ts +++ b/src/agents/pi-embedded-runner/run/helpers.test.ts @@ -1,4 +1,4 @@ -import type { AssistantMessage } from "@mariozechner/pi-ai"; +import type { AssistantMessage } from "@earendil-works/pi-ai"; import { describe, expect, it } from "vitest"; import { resolveFinalAssistantRawText, resolveFinalAssistantVisibleText } from "./helpers.js"; diff --git a/src/agents/pi-embedded-runner/run/helpers.ts b/src/agents/pi-embedded-runner/run/helpers.ts index 524a642c5cb..7e802234891 100644 --- a/src/agents/pi-embedded-runner/run/helpers.ts +++ b/src/agents/pi-embedded-runner/run/helpers.ts @@ -1,4 +1,4 @@ -import type { AssistantMessage } from "@mariozechner/pi-ai"; +import type { AssistantMessage } from "@earendil-works/pi-ai"; import type { OpenClawConfig } from "../../../config/types.openclaw.js"; import { generateSecureToken } from "../../../infra/secure-random.js"; import { extractAssistantTextForPhase } from "../../../shared/chat-message-content.js"; diff --git a/src/agents/pi-embedded-runner/run/history-image-prune.test.ts b/src/agents/pi-embedded-runner/run/history-image-prune.test.ts index 1149007efa9..86cce22fb7c 100644 --- a/src/agents/pi-embedded-runner/run/history-image-prune.test.ts +++ b/src/agents/pi-embedded-runner/run/history-image-prune.test.ts @@ -1,5 +1,5 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import type { ImageContent } from "@mariozechner/pi-ai"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import type { ImageContent } from "@earendil-works/pi-ai"; import { describe, expect, it } from "vitest"; import { castAgentMessage } from "../../test-helpers/agent-message-fixtures.js"; import { diff --git a/src/agents/pi-embedded-runner/run/history-image-prune.ts b/src/agents/pi-embedded-runner/run/history-image-prune.ts index 20cc6fbf9da..bdeefd8d1a7 100644 --- a/src/agents/pi-embedded-runner/run/history-image-prune.ts +++ b/src/agents/pi-embedded-runner/run/history-image-prune.ts @@ -1,4 +1,4 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; export const PRUNED_HISTORY_IMAGE_MARKER = "[image data removed - already processed by model]"; export const PRUNED_HISTORY_MEDIA_REFERENCE_MARKER = diff --git a/src/agents/pi-embedded-runner/run/images.ts b/src/agents/pi-embedded-runner/run/images.ts index 66ad521ae3e..6e030e5e5e5 100644 --- a/src/agents/pi-embedded-runner/run/images.ts +++ b/src/agents/pi-embedded-runner/run/images.ts @@ -1,5 +1,5 @@ import path from "node:path"; -import type { ImageContent } from "@mariozechner/pi-ai"; +import type { ImageContent } from "@earendil-works/pi-ai"; import { formatErrorMessage } from "../../../infra/errors.js"; import { assertNoWindowsNetworkPath, safeFileURLToPath } from "../../../infra/local-file-access.js"; import type { PromptImageOrderEntry } from "../../../media/prompt-image-order.js"; diff --git a/src/agents/pi-embedded-runner/run/incomplete-turn.ts b/src/agents/pi-embedded-runner/run/incomplete-turn.ts index 601a6b68a18..f4f0bfeea13 100644 --- a/src/agents/pi-embedded-runner/run/incomplete-turn.ts +++ b/src/agents/pi-embedded-runner/run/incomplete-turn.ts @@ -1,4 +1,4 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; import { isSilentReplyPayloadText, isSilentReplyText, diff --git a/src/agents/pi-embedded-runner/run/llm-idle-timeout.ts b/src/agents/pi-embedded-runner/run/llm-idle-timeout.ts index bb68f59a47e..4409e311a9a 100644 --- a/src/agents/pi-embedded-runner/run/llm-idle-timeout.ts +++ b/src/agents/pi-embedded-runner/run/llm-idle-timeout.ts @@ -1,5 +1,5 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import { streamSimple } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import { streamSimple } from "@earendil-works/pi-ai"; import { DEFAULT_LLM_IDLE_TIMEOUT_SECONDS } from "../../../config/agent-timeout-defaults.js"; import type { OpenClawConfig } from "../../../config/types.openclaw.js"; import { createStreamIteratorWrapper } from "../../stream-iterator-wrapper.js"; diff --git a/src/agents/pi-embedded-runner/run/params.ts b/src/agents/pi-embedded-runner/run/params.ts index 19477fb352d..5329c53e3f6 100644 --- a/src/agents/pi-embedded-runner/run/params.ts +++ b/src/agents/pi-embedded-runner/run/params.ts @@ -1,5 +1,5 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import type { ImageContent } from "@mariozechner/pi-ai"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import type { ImageContent } from "@earendil-works/pi-ai"; import type { PartialReplyPayload, SourceReplyDeliveryMode, diff --git a/src/agents/pi-embedded-runner/run/payloads.errors.test.ts b/src/agents/pi-embedded-runner/run/payloads.errors.test.ts index 054958e1f36..2716c4b4ec2 100644 --- a/src/agents/pi-embedded-runner/run/payloads.errors.test.ts +++ b/src/agents/pi-embedded-runner/run/payloads.errors.test.ts @@ -1,4 +1,4 @@ -import type { AssistantMessage } from "@mariozechner/pi-ai"; +import type { AssistantMessage } from "@earendil-works/pi-ai"; import { describe, expect, it } from "vitest"; import { formatBillingErrorMessage } from "../../pi-embedded-helpers.js"; import { makeAssistantMessageFixture } from "../../test-helpers/assistant-message-fixtures.js"; diff --git a/src/agents/pi-embedded-runner/run/payloads.test.ts b/src/agents/pi-embedded-runner/run/payloads.test.ts index e4f9111384e..e18527536be 100644 --- a/src/agents/pi-embedded-runner/run/payloads.test.ts +++ b/src/agents/pi-embedded-runner/run/payloads.test.ts @@ -1,4 +1,4 @@ -import type { AssistantMessage } from "@mariozechner/pi-ai"; +import type { AssistantMessage } from "@earendil-works/pi-ai"; import { describe, expect, it } from "vitest"; import { buildPayloads, diff --git a/src/agents/pi-embedded-runner/run/payloads.ts b/src/agents/pi-embedded-runner/run/payloads.ts index 3ad0d565652..50024860dc1 100644 --- a/src/agents/pi-embedded-runner/run/payloads.ts +++ b/src/agents/pi-embedded-runner/run/payloads.ts @@ -1,4 +1,4 @@ -import type { AssistantMessage } from "@mariozechner/pi-ai"; +import type { AssistantMessage } from "@earendil-works/pi-ai"; import { hasOutboundReplyContent } from "openclaw/plugin-sdk/reply-payload"; import { createHeartbeatToolResponsePayload, diff --git a/src/agents/pi-embedded-runner/run/preemptive-compaction.test.ts b/src/agents/pi-embedded-runner/run/preemptive-compaction.test.ts index 67bdb2cf383..45947c80d36 100644 --- a/src/agents/pi-embedded-runner/run/preemptive-compaction.test.ts +++ b/src/agents/pi-embedded-runner/run/preemptive-compaction.test.ts @@ -1,4 +1,4 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; import { beforeAll, describe, expect, it, vi } from "vitest"; import "../../test-helpers/pi-coding-agent-token-mock.js"; import { estimateToolResultReductionPotential } from "../tool-result-truncation.js"; diff --git a/src/agents/pi-embedded-runner/run/preemptive-compaction.ts b/src/agents/pi-embedded-runner/run/preemptive-compaction.ts index 9cc1ac334bc..a6486727736 100644 --- a/src/agents/pi-embedded-runner/run/preemptive-compaction.ts +++ b/src/agents/pi-embedded-runner/run/preemptive-compaction.ts @@ -1,5 +1,5 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import { estimateTokens } from "@mariozechner/pi-coding-agent"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import { estimateTokens } from "@earendil-works/pi-coding-agent"; import { SAFETY_MARGIN, estimateMessagesTokens } from "../../compaction.js"; import { MIN_PROMPT_BUDGET_RATIO, diff --git a/src/agents/pi-embedded-runner/run/stream-wrapper.ts b/src/agents/pi-embedded-runner/run/stream-wrapper.ts index 2273873d6db..7224cf51146 100644 --- a/src/agents/pi-embedded-runner/run/stream-wrapper.ts +++ b/src/agents/pi-embedded-runner/run/stream-wrapper.ts @@ -1,4 +1,4 @@ -import { streamSimple } from "@mariozechner/pi-ai"; +import { streamSimple } from "@earendil-works/pi-ai"; import { createStreamIteratorWrapper } from "../../stream-iterator-wrapper.js"; type SimpleStream = ReturnType; diff --git a/src/agents/pi-embedded-runner/run/types.ts b/src/agents/pi-embedded-runner/run/types.ts index 0fced82fc4d..f227548321b 100644 --- a/src/agents/pi-embedded-runner/run/types.ts +++ b/src/agents/pi-embedded-runner/run/types.ts @@ -1,6 +1,6 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import type { Api, AssistantMessage, Model } from "@mariozechner/pi-ai"; -import type { AuthStorage, ModelRegistry } from "@mariozechner/pi-coding-agent"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import type { Api, AssistantMessage, Model } from "@earendil-works/pi-ai"; +import type { AuthStorage, ModelRegistry } from "@earendil-works/pi-coding-agent"; import type { HeartbeatToolResponse } from "../../../auto-reply/heartbeat-tool-response.js"; import type { ThinkLevel } from "../../../auto-reply/thinking.js"; import type { SessionSystemPromptReport } from "../../../config/sessions/types.js"; diff --git a/src/agents/pi-embedded-runner/sanitize-session-history.tool-result-details.test.ts b/src/agents/pi-embedded-runner/sanitize-session-history.tool-result-details.test.ts index da6fbe33d06..6cc03993154 100644 --- a/src/agents/pi-embedded-runner/sanitize-session-history.tool-result-details.test.ts +++ b/src/agents/pi-embedded-runner/sanitize-session-history.tool-result-details.test.ts @@ -1,6 +1,6 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import type { ToolResultMessage, UserMessage } from "@mariozechner/pi-ai"; -import { SessionManager } from "@mariozechner/pi-coding-agent"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import type { ToolResultMessage, UserMessage } from "@earendil-works/pi-ai"; +import { SessionManager } from "@earendil-works/pi-coding-agent"; import { describe, expect, it, vi } from "vitest"; import { makeAgentAssistantMessage } from "../test-helpers/agent-message-fixtures.js"; import { sanitizeSessionHistory } from "./replay-history.js"; diff --git a/src/agents/pi-embedded-runner/stream-payload-utils.ts b/src/agents/pi-embedded-runner/stream-payload-utils.ts index 9fe634b7932..1d102cb8773 100644 --- a/src/agents/pi-embedded-runner/stream-payload-utils.ts +++ b/src/agents/pi-embedded-runner/stream-payload-utils.ts @@ -1,4 +1,4 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; export function streamWithPayloadPatch( underlying: StreamFn, diff --git a/src/agents/pi-embedded-runner/stream-resolution.test.ts b/src/agents/pi-embedded-runner/stream-resolution.test.ts index b0ac7d3312d..3b20605c0ae 100644 --- a/src/agents/pi-embedded-runner/stream-resolution.test.ts +++ b/src/agents/pi-embedded-runner/stream-resolution.test.ts @@ -1,5 +1,5 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import { getApiProvider, streamSimple } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import { getApiProvider, streamSimple } from "@earendil-works/pi-ai"; import { afterEach, describe, expect, it, vi } from "vitest"; import * as providerTransportStream from "../provider-transport-stream.js"; import { SYSTEM_PROMPT_CACHE_BOUNDARY } from "../system-prompt-cache-boundary.js"; diff --git a/src/agents/pi-embedded-runner/stream-resolution.ts b/src/agents/pi-embedded-runner/stream-resolution.ts index 56aa2df2991..ec2f5cc585c 100644 --- a/src/agents/pi-embedded-runner/stream-resolution.ts +++ b/src/agents/pi-embedded-runner/stream-resolution.ts @@ -1,5 +1,5 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import { getApiProvider, streamSimple } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import { getApiProvider, streamSimple } from "@earendil-works/pi-ai"; import { createAnthropicVertexStreamFnForModel } from "../anthropic-vertex-stream.js"; import { createBoundaryAwareStreamFnForModel } from "../provider-transport-stream.js"; import { stripSystemPromptCacheBoundary } from "../system-prompt-cache-boundary.js"; diff --git a/src/agents/pi-embedded-runner/system-prompt.test.ts b/src/agents/pi-embedded-runner/system-prompt.test.ts index 5cd7cd2ca97..83a5811c6c7 100644 --- a/src/agents/pi-embedded-runner/system-prompt.test.ts +++ b/src/agents/pi-embedded-runner/system-prompt.test.ts @@ -1,4 +1,4 @@ -import type { AgentSession } from "@mariozechner/pi-coding-agent"; +import type { AgentSession } from "@earendil-works/pi-coding-agent"; import { afterEach, describe, expect, it, vi } from "vitest"; import { clearMemoryPluginState, registerMemoryPromptSection } from "../../plugins/memory-state.js"; import { diff --git a/src/agents/pi-embedded-runner/system-prompt.ts b/src/agents/pi-embedded-runner/system-prompt.ts index d3ebe7dec88..24934a9afba 100644 --- a/src/agents/pi-embedded-runner/system-prompt.ts +++ b/src/agents/pi-embedded-runner/system-prompt.ts @@ -1,5 +1,5 @@ -import type { AgentTool } from "@mariozechner/pi-agent-core"; -import type { AgentSession } from "@mariozechner/pi-coding-agent"; +import type { AgentTool } from "@earendil-works/pi-agent-core"; +import type { AgentSession } from "@earendil-works/pi-coding-agent"; import type { SourceReplyDeliveryMode } from "../../auto-reply/get-reply-options.types.js"; import type { SubagentDelegationMode } from "../../config/types.agent-defaults.js"; import type { MemoryCitationsMode } from "../../config/types.memory.js"; diff --git a/src/agents/pi-embedded-runner/thinking.test.ts b/src/agents/pi-embedded-runner/thinking.test.ts index 095e0505f39..7efee4eec8b 100644 --- a/src/agents/pi-embedded-runner/thinking.test.ts +++ b/src/agents/pi-embedded-runner/thinking.test.ts @@ -1,5 +1,5 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import { createAssistantMessageEventStream } from "@mariozechner/pi-ai"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import { createAssistantMessageEventStream } from "@earendil-works/pi-ai"; import { describe, expect, it } from "vitest"; import { castAgentMessage, castAgentMessages } from "../test-helpers/agent-message-fixtures.js"; import { diff --git a/src/agents/pi-embedded-runner/thinking.ts b/src/agents/pi-embedded-runner/thinking.ts index 03d5ad79d11..bb7f106882b 100644 --- a/src/agents/pi-embedded-runner/thinking.ts +++ b/src/agents/pi-embedded-runner/thinking.ts @@ -1,5 +1,5 @@ -import type { AgentMessage, StreamFn } from "@mariozechner/pi-agent-core"; -import { createAssistantMessageEventStream } from "@mariozechner/pi-ai"; +import type { AgentMessage, StreamFn } from "@earendil-works/pi-agent-core"; +import { createAssistantMessageEventStream } from "@earendil-works/pi-ai"; import { formatErrorMessage } from "../../infra/errors.js"; import { log } from "./logger.js"; diff --git a/src/agents/pi-embedded-runner/tool-call-argument-decoding.ts b/src/agents/pi-embedded-runner/tool-call-argument-decoding.ts index acb67c480db..b61cf2150a0 100644 --- a/src/agents/pi-embedded-runner/tool-call-argument-decoding.ts +++ b/src/agents/pi-embedded-runner/tool-call-argument-decoding.ts @@ -1,5 +1,5 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import { streamSimple } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import { streamSimple } from "@earendil-works/pi-ai"; import { visitObjectContentBlocks } from "../../shared/message-content-blocks.js"; const HTML_ENTITY_RE = /&(?:amp|lt|gt|quot|apos|#39|#x[0-9a-f]+|#\d+);/i; diff --git a/src/agents/pi-embedded-runner/tool-name-allowlist.ts b/src/agents/pi-embedded-runner/tool-name-allowlist.ts index 25ffb5d7b47..da8b28f7a26 100644 --- a/src/agents/pi-embedded-runner/tool-name-allowlist.ts +++ b/src/agents/pi-embedded-runner/tool-name-allowlist.ts @@ -1,4 +1,4 @@ -import type { AgentTool } from "@mariozechner/pi-agent-core"; +import type { AgentTool } from "@earendil-works/pi-agent-core"; import type { ClientToolDefinition } from "./run/params.js"; /** diff --git a/src/agents/pi-embedded-runner/tool-result-char-estimator.test.ts b/src/agents/pi-embedded-runner/tool-result-char-estimator.test.ts index de64b40df95..6675b392c2d 100644 --- a/src/agents/pi-embedded-runner/tool-result-char-estimator.test.ts +++ b/src/agents/pi-embedded-runner/tool-result-char-estimator.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 { createMessageCharEstimateCache, diff --git a/src/agents/pi-embedded-runner/tool-result-char-estimator.ts b/src/agents/pi-embedded-runner/tool-result-char-estimator.ts index 0b836a12f3b..6928bf3e7e7 100644 --- a/src/agents/pi-embedded-runner/tool-result-char-estimator.ts +++ b/src/agents/pi-embedded-runner/tool-result-char-estimator.ts @@ -1,4 +1,4 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; export const CHARS_PER_TOKEN_ESTIMATE = 4; export const TOOL_RESULT_CHARS_PER_TOKEN_ESTIMATE = 2; diff --git a/src/agents/pi-embedded-runner/tool-result-context-guard.test.ts b/src/agents/pi-embedded-runner/tool-result-context-guard.test.ts index 10eca7eacfc..1ebb4fb373f 100644 --- a/src/agents/pi-embedded-runner/tool-result-context-guard.test.ts +++ b/src/agents/pi-embedded-runner/tool-result-context-guard.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 type { ContextEngine } from "../../context-engine/types.js"; import { castAgentMessage } from "../test-helpers/agent-message-fixtures.js"; diff --git a/src/agents/pi-embedded-runner/tool-result-context-guard.ts b/src/agents/pi-embedded-runner/tool-result-context-guard.ts index baace445255..6e45144fb99 100644 --- a/src/agents/pi-embedded-runner/tool-result-context-guard.ts +++ b/src/agents/pi-embedded-runner/tool-result-context-guard.ts @@ -1,4 +1,4 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; import type { ContextEngine, ContextEngineRuntimeContext } from "../../context-engine/types.js"; import { CONTEXT_LIMIT_TRUNCATION_NOTICE, diff --git a/src/agents/pi-embedded-runner/tool-result-truncation.test.ts b/src/agents/pi-embedded-runner/tool-result-truncation.test.ts index 4a9265cc19d..f44f6b9c363 100644 --- a/src/agents/pi-embedded-runner/tool-result-truncation.test.ts +++ b/src/agents/pi-embedded-runner/tool-result-truncation.test.ts @@ -1,9 +1,9 @@ import fs from "node:fs/promises"; import os from "node:os"; import path from "node:path"; -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import type { AssistantMessage, ToolResultMessage, UserMessage } from "@mariozechner/pi-ai"; -import { SessionManager } from "@mariozechner/pi-coding-agent"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import type { AssistantMessage, ToolResultMessage, UserMessage } from "@earendil-works/pi-ai"; +import { SessionManager } from "@earendil-works/pi-coding-agent"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { onSessionTranscriptUpdate } from "../../sessions/transcript-events.js"; import { makeAgentAssistantMessage } from "../test-helpers/agent-message-fixtures.js"; diff --git a/src/agents/pi-embedded-runner/tool-result-truncation.ts b/src/agents/pi-embedded-runner/tool-result-truncation.ts index 34dda5d79c3..d15d2b9217b 100644 --- a/src/agents/pi-embedded-runner/tool-result-truncation.ts +++ b/src/agents/pi-embedded-runner/tool-result-truncation.ts @@ -1,6 +1,6 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import type { TextContent } from "@mariozechner/pi-ai"; -import { SessionManager } from "@mariozechner/pi-coding-agent"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import type { TextContent } from "@earendil-works/pi-ai"; +import { SessionManager } from "@earendil-works/pi-coding-agent"; import type { OpenClawConfig } from "../../config/types.openclaw.js"; import { formatErrorMessage } from "../../infra/errors.js"; import { emitSessionTranscriptUpdate } from "../../sessions/transcript-events.js"; diff --git a/src/agents/pi-embedded-runner/tool-schema-runtime.ts b/src/agents/pi-embedded-runner/tool-schema-runtime.ts index 91ec528588e..16793dc60ef 100644 --- a/src/agents/pi-embedded-runner/tool-schema-runtime.ts +++ b/src/agents/pi-embedded-runner/tool-schema-runtime.ts @@ -1,4 +1,4 @@ -import type { AgentTool } from "@mariozechner/pi-agent-core"; +import type { AgentTool } from "@earendil-works/pi-agent-core"; import type { TSchema } from "typebox"; import type { OpenClawConfig } from "../../config/types.openclaw.js"; import type { ProviderRuntimePluginHandle } from "../../plugins/provider-hook-runtime.js"; diff --git a/src/agents/pi-embedded-runner/tool-split.ts b/src/agents/pi-embedded-runner/tool-split.ts index e4dd08b28b3..59a82babfc2 100644 --- a/src/agents/pi-embedded-runner/tool-split.ts +++ b/src/agents/pi-embedded-runner/tool-split.ts @@ -1,4 +1,4 @@ -import type { AgentTool } from "@mariozechner/pi-agent-core"; +import type { AgentTool } from "@earendil-works/pi-agent-core"; import { toToolDefinitions } from "../pi-tool-definition-adapter.js"; // We always pass tools via `customTools` so our policy filtering, sandbox integration, diff --git a/src/agents/pi-embedded-runner/transcript-file-state.ts b/src/agents/pi-embedded-runner/transcript-file-state.ts index e9f6df6db3b..7d9be4e1d96 100644 --- a/src/agents/pi-embedded-runner/transcript-file-state.ts +++ b/src/agents/pi-embedded-runner/transcript-file-state.ts @@ -10,7 +10,7 @@ import { type SessionContext, type SessionEntry, type SessionHeader, -} from "@mariozechner/pi-coding-agent"; +} from "@earendil-works/pi-coding-agent"; import { appendRegularFile } from "../../infra/fs-safe.js"; import { privateFileStore } from "../../infra/private-file-store.js"; diff --git a/src/agents/pi-embedded-runner/transcript-rewrite.test.ts b/src/agents/pi-embedded-runner/transcript-rewrite.test.ts index 2721185b574..7ca70777136 100644 --- a/src/agents/pi-embedded-runner/transcript-rewrite.test.ts +++ b/src/agents/pi-embedded-runner/transcript-rewrite.test.ts @@ -1,8 +1,8 @@ import fs from "node:fs/promises"; import os from "node:os"; import path from "node:path"; -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import { SessionManager } from "@mariozechner/pi-coding-agent"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import { SessionManager } from "@earendil-works/pi-coding-agent"; import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; import { buildSessionWriteLockModuleMock } from "../../test-utils/session-write-lock-module-mock.js"; diff --git a/src/agents/pi-embedded-runner/transcript-rewrite.ts b/src/agents/pi-embedded-runner/transcript-rewrite.ts index 9040e4efbe0..11186608060 100644 --- a/src/agents/pi-embedded-runner/transcript-rewrite.ts +++ b/src/agents/pi-embedded-runner/transcript-rewrite.ts @@ -1,5 +1,5 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import { SessionManager } from "@mariozechner/pi-coding-agent"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import { SessionManager } from "@earendil-works/pi-coding-agent"; import type { TranscriptRewriteReplacement, TranscriptRewriteRequest, diff --git a/src/agents/pi-embedded-runner/usage-reporting.test.ts b/src/agents/pi-embedded-runner/usage-reporting.test.ts index ed08c4ac1c2..ffcd4f6a6ce 100644 --- a/src/agents/pi-embedded-runner/usage-reporting.test.ts +++ b/src/agents/pi-embedded-runner/usage-reporting.test.ts @@ -1,4 +1,4 @@ -import type { AssistantMessage } from "@mariozechner/pi-ai"; +import type { AssistantMessage } from "@earendil-works/pi-ai"; import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; import { makeAttemptResult } from "./run.overflow-compaction.fixture.js"; import { diff --git a/src/agents/pi-embedded-runner/utils.ts b/src/agents/pi-embedded-runner/utils.ts index e55e6103a11..711df4019c9 100644 --- a/src/agents/pi-embedded-runner/utils.ts +++ b/src/agents/pi-embedded-runner/utils.ts @@ -1,4 +1,4 @@ -import type { ThinkingLevel } from "@mariozechner/pi-agent-core"; +import type { ThinkingLevel } from "@earendil-works/pi-agent-core"; import type { ReasoningLevel, ThinkLevel } from "../../auto-reply/thinking.js"; export function mapThinkingLevel(level?: ThinkLevel): ThinkingLevel { diff --git a/src/agents/pi-embedded-runner/zai-stream-wrappers.ts b/src/agents/pi-embedded-runner/zai-stream-wrappers.ts index 6fb2ece7f34..c98ac5ae0e1 100644 --- a/src/agents/pi-embedded-runner/zai-stream-wrappers.ts +++ b/src/agents/pi-embedded-runner/zai-stream-wrappers.ts @@ -1,5 +1,5 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import { streamSimple } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import { streamSimple } from "@earendil-works/pi-ai"; import { streamWithPayloadPatch } from "./stream-payload-utils.js"; /** diff --git a/src/agents/pi-embedded-subscribe.e2e-harness.ts b/src/agents/pi-embedded-subscribe.e2e-harness.ts index 12138fefbcd..2359928de38 100644 --- a/src/agents/pi-embedded-subscribe.e2e-harness.ts +++ b/src/agents/pi-embedded-subscribe.e2e-harness.ts @@ -1,4 +1,4 @@ -import type { AssistantMessage } from "@mariozechner/pi-ai"; +import type { AssistantMessage } from "@earendil-works/pi-ai"; import { expect } from "vitest"; import { subscribeEmbeddedPiSession } from "./pi-embedded-subscribe.js"; diff --git a/src/agents/pi-embedded-subscribe.handlers.compaction.ts b/src/agents/pi-embedded-subscribe.handlers.compaction.ts index 6a35f90c03c..4d7106d094b 100644 --- a/src/agents/pi-embedded-subscribe.handlers.compaction.ts +++ b/src/agents/pi-embedded-subscribe.handlers.compaction.ts @@ -1,4 +1,4 @@ -import type { AgentEvent } from "@mariozechner/pi-agent-core"; +import type { AgentEvent } from "@earendil-works/pi-agent-core"; import { emitAgentEvent } from "../infra/agent-events.js"; import { getGlobalHookRunner } from "../plugins/hook-runner-global.js"; import type { EmbeddedPiSubscribeContext } from "./pi-embedded-subscribe.handlers.types.js"; diff --git a/src/agents/pi-embedded-subscribe.handlers.messages.ts b/src/agents/pi-embedded-subscribe.handlers.messages.ts index d91ea349c51..5f1122d1081 100644 --- a/src/agents/pi-embedded-subscribe.handlers.messages.ts +++ b/src/agents/pi-embedded-subscribe.handlers.messages.ts @@ -1,5 +1,5 @@ -import type { AgentEvent, AgentMessage } from "@mariozechner/pi-agent-core"; -import type { AssistantMessage } from "@mariozechner/pi-ai"; +import type { AgentEvent, AgentMessage } from "@earendil-works/pi-agent-core"; +import type { AssistantMessage } from "@earendil-works/pi-ai"; import { resolveSendableOutboundReplyParts } from "openclaw/plugin-sdk/reply-payload"; import { parseReplyDirectives, diff --git a/src/agents/pi-embedded-subscribe.handlers.tools.test.ts b/src/agents/pi-embedded-subscribe.handlers.tools.test.ts index cb3506cd3b7..521be4a30da 100644 --- a/src/agents/pi-embedded-subscribe.handlers.tools.test.ts +++ b/src/agents/pi-embedded-subscribe.handlers.tools.test.ts @@ -1,4 +1,4 @@ -import type { AgentEvent } from "@mariozechner/pi-agent-core"; +import type { AgentEvent } from "@earendil-works/pi-agent-core"; import { afterEach, describe, expect, it, vi } from "vitest"; import { onAgentEvent as registerAgentEventListener, diff --git a/src/agents/pi-embedded-subscribe.handlers.tools.ts b/src/agents/pi-embedded-subscribe.handlers.tools.ts index 29001e81389..a1b79bd3921 100644 --- a/src/agents/pi-embedded-subscribe.handlers.tools.ts +++ b/src/agents/pi-embedded-subscribe.handlers.tools.ts @@ -1,4 +1,4 @@ -import type { AgentEvent } from "@mariozechner/pi-agent-core"; +import type { AgentEvent } from "@earendil-works/pi-agent-core"; import { HEARTBEAT_RESPONSE_TOOL_NAME, normalizeHeartbeatToolResponse, diff --git a/src/agents/pi-embedded-subscribe.handlers.types.ts b/src/agents/pi-embedded-subscribe.handlers.types.ts index 15ed4a58eab..72f5da73005 100644 --- a/src/agents/pi-embedded-subscribe.handlers.types.ts +++ b/src/agents/pi-embedded-subscribe.handlers.types.ts @@ -1,4 +1,4 @@ -import type { AgentEvent, AgentMessage } from "@mariozechner/pi-agent-core"; +import type { AgentEvent, AgentMessage } from "@earendil-works/pi-agent-core"; import type { HeartbeatToolResponse } from "../auto-reply/heartbeat-tool-response.js"; import type { ReplyDirectiveParseResult } from "../auto-reply/reply/reply-directives.js"; import type { ReasoningLevel } from "../auto-reply/thinking.js"; diff --git a/src/agents/pi-embedded-subscribe.reply-tags.test.ts b/src/agents/pi-embedded-subscribe.reply-tags.test.ts index a76db602291..961ec5571b0 100644 --- a/src/agents/pi-embedded-subscribe.reply-tags.test.ts +++ b/src/agents/pi-embedded-subscribe.reply-tags.test.ts @@ -1,4 +1,4 @@ -import type { AssistantMessage } from "@mariozechner/pi-ai"; +import type { AssistantMessage } from "@earendil-works/pi-ai"; import { describe, expect, it, vi } from "vitest"; import { createStubSessionHarness, diff --git a/src/agents/pi-embedded-subscribe.subscribe-embedded-pi-session.does-not-emit-duplicate-block-replies-text.test.ts b/src/agents/pi-embedded-subscribe.subscribe-embedded-pi-session.does-not-emit-duplicate-block-replies-text.test.ts index 1639dae622a..96d68951ce9 100644 --- a/src/agents/pi-embedded-subscribe.subscribe-embedded-pi-session.does-not-emit-duplicate-block-replies-text.test.ts +++ b/src/agents/pi-embedded-subscribe.subscribe-embedded-pi-session.does-not-emit-duplicate-block-replies-text.test.ts @@ -1,4 +1,4 @@ -import type { AssistantMessage } from "@mariozechner/pi-ai"; +import type { AssistantMessage } from "@earendil-works/pi-ai"; import { describe, expect, it, vi } from "vitest"; import { createStubSessionHarness, diff --git a/src/agents/pi-embedded-subscribe.subscribe-embedded-pi-session.emits-block-replies-text-end-does-not.test.ts b/src/agents/pi-embedded-subscribe.subscribe-embedded-pi-session.emits-block-replies-text-end-does-not.test.ts index 7c61a211771..2f6ffd4133c 100644 --- a/src/agents/pi-embedded-subscribe.subscribe-embedded-pi-session.emits-block-replies-text-end-does-not.test.ts +++ b/src/agents/pi-embedded-subscribe.subscribe-embedded-pi-session.emits-block-replies-text-end-does-not.test.ts @@ -1,4 +1,4 @@ -import type { AssistantMessage } from "@mariozechner/pi-ai"; +import type { AssistantMessage } from "@earendil-works/pi-ai"; import { describe, expect, it, vi } from "vitest"; import { createTextEndBlockReplyHarness, diff --git a/src/agents/pi-embedded-subscribe.subscribe-embedded-pi-session.emits-reasoning-as-separate-message-enabled.test.ts b/src/agents/pi-embedded-subscribe.subscribe-embedded-pi-session.emits-reasoning-as-separate-message-enabled.test.ts index 82a6e375b8e..ea7bb228cdd 100644 --- a/src/agents/pi-embedded-subscribe.subscribe-embedded-pi-session.emits-reasoning-as-separate-message-enabled.test.ts +++ b/src/agents/pi-embedded-subscribe.subscribe-embedded-pi-session.emits-reasoning-as-separate-message-enabled.test.ts @@ -1,4 +1,4 @@ -import type { AssistantMessage } from "@mariozechner/pi-ai"; +import type { AssistantMessage } from "@earendil-works/pi-ai"; import { describe, expect, it, vi } from "vitest"; import { THINKING_TAG_CASES, diff --git a/src/agents/pi-embedded-subscribe.subscribe-embedded-pi-session.filters-final-suppresses-output-without-start-tag.test.ts b/src/agents/pi-embedded-subscribe.subscribe-embedded-pi-session.filters-final-suppresses-output-without-start-tag.test.ts index 2ca639d30e7..1fe7b2c596d 100644 --- a/src/agents/pi-embedded-subscribe.subscribe-embedded-pi-session.filters-final-suppresses-output-without-start-tag.test.ts +++ b/src/agents/pi-embedded-subscribe.subscribe-embedded-pi-session.filters-final-suppresses-output-without-start-tag.test.ts @@ -1,4 +1,4 @@ -import type { AssistantMessage } from "@mariozechner/pi-ai"; +import type { AssistantMessage } from "@earendil-works/pi-ai"; import { describe, expect, it, vi } from "vitest"; import { createStubSessionHarness, diff --git a/src/agents/pi-embedded-subscribe.subscribe-embedded-pi-session.splits-long-single-line-fenced-blocks-reopen.test.ts b/src/agents/pi-embedded-subscribe.subscribe-embedded-pi-session.splits-long-single-line-fenced-blocks-reopen.test.ts index 057898f7f4c..803463de96a 100644 --- a/src/agents/pi-embedded-subscribe.subscribe-embedded-pi-session.splits-long-single-line-fenced-blocks-reopen.test.ts +++ b/src/agents/pi-embedded-subscribe.subscribe-embedded-pi-session.splits-long-single-line-fenced-blocks-reopen.test.ts @@ -1,4 +1,4 @@ -import type { AssistantMessage } from "@mariozechner/pi-ai"; +import type { AssistantMessage } from "@earendil-works/pi-ai"; import { describe, expect, it, vi } from "vitest"; import { createParagraphChunkedBlockReplyHarness, diff --git a/src/agents/pi-embedded-subscribe.subscribe-embedded-pi-session.subscribeembeddedpisession.test.ts b/src/agents/pi-embedded-subscribe.subscribe-embedded-pi-session.subscribeembeddedpisession.test.ts index c7994277ea3..f9fd1cae6e9 100644 --- a/src/agents/pi-embedded-subscribe.subscribe-embedded-pi-session.subscribeembeddedpisession.test.ts +++ b/src/agents/pi-embedded-subscribe.subscribe-embedded-pi-session.subscribeembeddedpisession.test.ts @@ -1,4 +1,4 @@ -import type { AssistantMessage } from "@mariozechner/pi-ai"; +import type { AssistantMessage } from "@earendil-works/pi-ai"; import { describe, expect, it, vi } from "vitest"; import * as agentEvents from "../infra/agent-events.js"; import { diff --git a/src/agents/pi-embedded-subscribe.subscribe-embedded-pi-session.suppresses-commentary-phase-output.test.ts b/src/agents/pi-embedded-subscribe.subscribe-embedded-pi-session.suppresses-commentary-phase-output.test.ts index 675ed9d8d50..ab25c4ad7b2 100644 --- a/src/agents/pi-embedded-subscribe.subscribe-embedded-pi-session.suppresses-commentary-phase-output.test.ts +++ b/src/agents/pi-embedded-subscribe.subscribe-embedded-pi-session.suppresses-commentary-phase-output.test.ts @@ -1,4 +1,4 @@ -import type { AssistantMessage } from "@mariozechner/pi-ai"; +import type { AssistantMessage } from "@earendil-works/pi-ai"; import { describe, expect, it, vi } from "vitest"; import { createSubscribedSessionHarness } from "./pi-embedded-subscribe.e2e-harness.js"; diff --git a/src/agents/pi-embedded-subscribe.subscribe-embedded-pi-session.suppresses-message-end-block-replies-message-tool.test.ts b/src/agents/pi-embedded-subscribe.subscribe-embedded-pi-session.suppresses-message-end-block-replies-message-tool.test.ts index f050a37032b..3c2f0ddd7f1 100644 --- a/src/agents/pi-embedded-subscribe.subscribe-embedded-pi-session.suppresses-message-end-block-replies-message-tool.test.ts +++ b/src/agents/pi-embedded-subscribe.subscribe-embedded-pi-session.suppresses-message-end-block-replies-message-tool.test.ts @@ -1,4 +1,4 @@ -import type { AssistantMessage } from "@mariozechner/pi-ai"; +import type { AssistantMessage } from "@earendil-works/pi-ai"; import { describe, expect, it, vi } from "vitest"; import { createStubSessionHarness, diff --git a/src/agents/pi-embedded-subscribe.tool-text-diagnostics.ts b/src/agents/pi-embedded-subscribe.tool-text-diagnostics.ts index 5f64d828563..062359ad30c 100644 --- a/src/agents/pi-embedded-subscribe.tool-text-diagnostics.ts +++ b/src/agents/pi-embedded-subscribe.tool-text-diagnostics.ts @@ -1,4 +1,4 @@ -import type { AssistantMessage } from "@mariozechner/pi-ai"; +import type { AssistantMessage } from "@earendil-works/pi-ai"; import { extractTextFromChatContent } from "../shared/chat-content.js"; import { normalizeOptionalString } from "../shared/string-coerce.js"; import { detectToolCallShapedText } from "../shared/text/tool-call-shaped-text.js"; diff --git a/src/agents/pi-embedded-subscribe.ts b/src/agents/pi-embedded-subscribe.ts index be2524f5e2c..6a3ae9fe955 100644 --- a/src/agents/pi-embedded-subscribe.ts +++ b/src/agents/pi-embedded-subscribe.ts @@ -1,4 +1,4 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; import { setReplyPayloadMetadata } from "../auto-reply/reply-payload.js"; import { parseReplyDirectives } from "../auto-reply/reply/reply-directives.js"; import { createStreamingDirectiveAccumulator } from "../auto-reply/reply/streaming-directives.js"; diff --git a/src/agents/pi-embedded-subscribe.types.ts b/src/agents/pi-embedded-subscribe.types.ts index 3abb563fda7..265b4f34193 100644 --- a/src/agents/pi-embedded-subscribe.types.ts +++ b/src/agents/pi-embedded-subscribe.types.ts @@ -1,4 +1,4 @@ -import type { AgentSession } from "@mariozechner/pi-coding-agent"; +import type { AgentSession } from "@earendil-works/pi-coding-agent"; import type { PartialReplyPayload } from "../auto-reply/get-reply-options.types.js"; import type { ReplyPayload } from "../auto-reply/reply-payload.js"; import type { ReasoningLevel, ThinkLevel, VerboseLevel } from "../auto-reply/thinking.js"; diff --git a/src/agents/pi-embedded-utils.test.ts b/src/agents/pi-embedded-utils.test.ts index 2283d68e67b..9e46224bfcd 100644 --- a/src/agents/pi-embedded-utils.test.ts +++ b/src/agents/pi-embedded-utils.test.ts @@ -1,4 +1,4 @@ -import type { AssistantMessage } from "@mariozechner/pi-ai"; +import type { AssistantMessage } from "@earendil-works/pi-ai"; import { describe, expect, it } from "vitest"; import { extractAssistantText, diff --git a/src/agents/pi-embedded-utils.ts b/src/agents/pi-embedded-utils.ts index 59bb2514e6d..ef2fa66d812 100644 --- a/src/agents/pi-embedded-utils.ts +++ b/src/agents/pi-embedded-utils.ts @@ -1,5 +1,5 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import type { AssistantMessage } from "@mariozechner/pi-ai"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import type { AssistantMessage } from "@earendil-works/pi-ai"; import { extractTextFromChatContent } from "../shared/chat-content.js"; import { normalizeAssistantPhase, diff --git a/src/agents/pi-hooks/compaction-safeguard-runtime.ts b/src/agents/pi-hooks/compaction-safeguard-runtime.ts index 20f172e50d8..545c05ec0b0 100644 --- a/src/agents/pi-hooks/compaction-safeguard-runtime.ts +++ b/src/agents/pi-hooks/compaction-safeguard-runtime.ts @@ -1,4 +1,4 @@ -import type { Api, Model } from "@mariozechner/pi-ai"; +import type { Api, Model } from "@earendil-works/pi-ai"; import type { AgentCompactionIdentifierPolicy } from "../../config/types.agent-defaults.js"; import { createSessionManagerRuntimeRegistry } from "./session-manager-runtime-registry.js"; diff --git a/src/agents/pi-hooks/compaction-safeguard.test.ts b/src/agents/pi-hooks/compaction-safeguard.test.ts index 13db40fe5f4..1469fb2e5bd 100644 --- a/src/agents/pi-hooks/compaction-safeguard.test.ts +++ b/src/agents/pi-hooks/compaction-safeguard.test.ts @@ -1,9 +1,9 @@ import fs from "node:fs"; import os from "node:os"; import path from "node:path"; -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import type { Api, Model } from "@mariozechner/pi-ai"; -import type { ExtensionAPI, ExtensionContext } from "@mariozechner/pi-coding-agent"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import type { Api, Model } from "@earendil-works/pi-ai"; +import type { ExtensionAPI, ExtensionContext } from "@earendil-works/pi-coding-agent"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import type { OpenClawConfig } from "../../config/config.js"; import { diff --git a/src/agents/pi-hooks/compaction-safeguard.ts b/src/agents/pi-hooks/compaction-safeguard.ts index 789c8d82684..59f08701066 100644 --- a/src/agents/pi-hooks/compaction-safeguard.ts +++ b/src/agents/pi-hooks/compaction-safeguard.ts @@ -1,7 +1,11 @@ import fs from "node:fs"; import path from "node:path"; -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import type { ExtensionAPI, ExtensionContext, FileOperations } from "@mariozechner/pi-coding-agent"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import type { + ExtensionAPI, + ExtensionContext, + FileOperations, +} from "@earendil-works/pi-coding-agent"; import { extractSections } from "../../auto-reply/reply/post-compaction-context.js"; import { openRootFile } from "../../infra/boundary-file-read.js"; import { formatErrorMessage } from "../../infra/errors.js"; diff --git a/src/agents/pi-hooks/context-pruning.test.ts b/src/agents/pi-hooks/context-pruning.test.ts index e45d15d2644..6206d5086af 100644 --- a/src/agents/pi-hooks/context-pruning.test.ts +++ b/src/agents/pi-hooks/context-pruning.test.ts @@ -1,6 +1,6 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import type { ToolResultMessage } from "@mariozechner/pi-ai"; -import type { ExtensionAPI, ExtensionContext } from "@mariozechner/pi-coding-agent"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import type { ToolResultMessage } from "@earendil-works/pi-ai"; +import type { ExtensionAPI, ExtensionContext } from "@earendil-works/pi-coding-agent"; import { describe, expect, it } from "vitest"; import { computeEffectiveSettings, diff --git a/src/agents/pi-hooks/context-pruning/extension.ts b/src/agents/pi-hooks/context-pruning/extension.ts index e8f979cc89f..98c031f1bf5 100644 --- a/src/agents/pi-hooks/context-pruning/extension.ts +++ b/src/agents/pi-hooks/context-pruning/extension.ts @@ -1,4 +1,4 @@ -import type { ContextEvent, ExtensionAPI, ExtensionContext } from "@mariozechner/pi-coding-agent"; +import type { ContextEvent, ExtensionAPI, ExtensionContext } from "@earendil-works/pi-coding-agent"; import { pruneContextMessages } from "./pruner.js"; import { getContextPruningRuntime } from "./runtime.js"; diff --git a/src/agents/pi-hooks/context-pruning/pruner.test.ts b/src/agents/pi-hooks/context-pruning/pruner.test.ts index cb64db13bb1..d997ed245b1 100644 --- a/src/agents/pi-hooks/context-pruning/pruner.test.ts +++ b/src/agents/pi-hooks/context-pruning/pruner.test.ts @@ -1,5 +1,5 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import type { ExtensionContext } from "@mariozechner/pi-coding-agent"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import type { ExtensionContext } from "@earendil-works/pi-coding-agent"; import { describe, expect, it } from "vitest"; import { pruneContextMessages } from "./pruner.js"; import { DEFAULT_CONTEXT_PRUNING_SETTINGS } from "./settings.js"; diff --git a/src/agents/pi-hooks/context-pruning/pruner.ts b/src/agents/pi-hooks/context-pruning/pruner.ts index c1b3c041169..121bebc3ef5 100644 --- a/src/agents/pi-hooks/context-pruning/pruner.ts +++ b/src/agents/pi-hooks/context-pruning/pruner.ts @@ -1,6 +1,6 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import type { ImageContent, TextContent, ToolResultMessage } from "@mariozechner/pi-ai"; -import type { ExtensionContext } from "@mariozechner/pi-coding-agent"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import type { ImageContent, TextContent, ToolResultMessage } from "@earendil-works/pi-ai"; +import type { ExtensionContext } from "@earendil-works/pi-coding-agent"; import { CHARS_PER_TOKEN_ESTIMATE, estimateStringChars } from "../../../utils/cjk-chars.js"; import { dropThinkingBlocks } from "../../pi-embedded-runner/thinking.js"; import type { EffectiveContextPruningSettings } from "./settings.js"; diff --git a/src/agents/pi-mcp-style.cache.live.test.ts b/src/agents/pi-mcp-style.cache.live.test.ts index 20d9efef80c..990ab9304d6 100644 --- a/src/agents/pi-mcp-style.cache.live.test.ts +++ b/src/agents/pi-mcp-style.cache.live.test.ts @@ -1,4 +1,4 @@ -import type { AssistantMessage, Tool } from "@mariozechner/pi-ai"; +import type { AssistantMessage, Tool } from "@earendil-works/pi-ai"; import { Type } from "typebox"; import { describe, expect, it } from "vitest"; import { diff --git a/src/agents/pi-model-discovery.compat.e2e.test.ts b/src/agents/pi-model-discovery.compat.e2e.test.ts index 815c51139d7..51054bf50cc 100644 --- a/src/agents/pi-model-discovery.compat.e2e.test.ts +++ b/src/agents/pi-model-discovery.compat.e2e.test.ts @@ -2,12 +2,12 @@ import { afterEach, describe, expect, it, vi } from "vitest"; describe("pi-model-discovery module compatibility", () => { afterEach(() => { - vi.doUnmock("@mariozechner/pi-coding-agent"); + vi.doUnmock("@earendil-works/pi-coding-agent"); }); it("loads when InMemoryAuthStorageBackend is not exported", async () => { vi.resetModules(); - vi.doMock("@mariozechner/pi-coding-agent", () => { + vi.doMock("@earendil-works/pi-coding-agent", () => { function MockAuthStorage() {} function MockModelRegistry() {} diff --git a/src/agents/pi-model-discovery.ts b/src/agents/pi-model-discovery.ts index e40736d5acb..9033297b3c1 100644 --- a/src/agents/pi-model-discovery.ts +++ b/src/agents/pi-model-discovery.ts @@ -1,10 +1,10 @@ import path from "node:path"; -import type { Api, Model } from "@mariozechner/pi-ai"; -import * as PiCodingAgent from "@mariozechner/pi-coding-agent"; +import type { Api, Model } from "@earendil-works/pi-ai"; +import * as PiCodingAgent from "@earendil-works/pi-coding-agent"; import type { AuthStorage as PiAuthStorage, ModelRegistry as PiModelRegistry, -} from "@mariozechner/pi-coding-agent"; +} from "@earendil-works/pi-coding-agent"; import { normalizeModelCompat } from "../plugins/provider-model-compat.js"; import { applyProviderResolvedModelCompatWithPlugins, diff --git a/src/agents/pi-project-settings-snapshot.ts b/src/agents/pi-project-settings-snapshot.ts index f3acc01da5b..ba5ca097c91 100644 --- a/src/agents/pi-project-settings-snapshot.ts +++ b/src/agents/pi-project-settings-snapshot.ts @@ -1,5 +1,5 @@ import path from "node:path"; -import type { SettingsManager } from "@mariozechner/pi-coding-agent"; +import type { SettingsManager } from "@earendil-works/pi-coding-agent"; import { applyMergePatch } from "../config/merge-patch.js"; import type { OpenClawConfig } from "../config/types.openclaw.js"; import { readRootJsonObjectSync } from "../infra/json-files.js"; diff --git a/src/agents/pi-project-settings.ts b/src/agents/pi-project-settings.ts index 010bc9c8ceb..9106f1836dd 100644 --- a/src/agents/pi-project-settings.ts +++ b/src/agents/pi-project-settings.ts @@ -1,4 +1,4 @@ -import { SettingsManager } from "@mariozechner/pi-coding-agent"; +import { SettingsManager } from "@earendil-works/pi-coding-agent"; import type { OpenClawConfig } from "../config/types.openclaw.js"; import type { PluginMetadataSnapshot } from "../plugins/plugin-metadata-snapshot.js"; import { diff --git a/src/agents/pi-tool-definition-adapter.after-tool-call.fires-once.test.ts b/src/agents/pi-tool-definition-adapter.after-tool-call.fires-once.test.ts index eb02273e053..a2518b98f6f 100644 --- a/src/agents/pi-tool-definition-adapter.after-tool-call.fires-once.test.ts +++ b/src/agents/pi-tool-definition-adapter.after-tool-call.fires-once.test.ts @@ -6,7 +6,7 @@ * Regression guard for the double-fire bug fixed by removing the adapter-side * after_tool_call invocation (see PR #27283 → dedup in this fix). */ -import type { AgentTool } from "@mariozechner/pi-agent-core"; +import type { AgentTool } from "@earendil-works/pi-agent-core"; import { Type } from "typebox"; import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; import { createBaseToolHandlerState } from "./pi-tool-handler-state.test-helpers.js"; diff --git a/src/agents/pi-tool-definition-adapter.after-tool-call.test.ts b/src/agents/pi-tool-definition-adapter.after-tool-call.test.ts index 966d5a21078..a4fa8f2705b 100644 --- a/src/agents/pi-tool-definition-adapter.after-tool-call.test.ts +++ b/src/agents/pi-tool-definition-adapter.after-tool-call.test.ts @@ -1,4 +1,4 @@ -import type { AgentTool } from "@mariozechner/pi-agent-core"; +import type { AgentTool } from "@earendil-works/pi-agent-core"; import { Type } from "typebox"; import { beforeEach, describe, expect, it, vi } from "vitest"; import { toToolDefinitions } from "./pi-tool-definition-adapter.js"; diff --git a/src/agents/pi-tool-definition-adapter.logging.test.ts b/src/agents/pi-tool-definition-adapter.logging.test.ts index b259d14c792..3750c4d56a5 100644 --- a/src/agents/pi-tool-definition-adapter.logging.test.ts +++ b/src/agents/pi-tool-definition-adapter.logging.test.ts @@ -1,4 +1,4 @@ -import type { AgentTool } from "@mariozechner/pi-agent-core"; +import type { AgentTool } from "@earendil-works/pi-agent-core"; import { Type } from "typebox"; import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; diff --git a/src/agents/pi-tool-definition-adapter.test.ts b/src/agents/pi-tool-definition-adapter.test.ts index 03d3dd9ebed..fe1d571445f 100644 --- a/src/agents/pi-tool-definition-adapter.test.ts +++ b/src/agents/pi-tool-definition-adapter.test.ts @@ -1,4 +1,4 @@ -import type { AgentTool } from "@mariozechner/pi-agent-core"; +import type { AgentTool } from "@earendil-works/pi-agent-core"; import { Type } from "typebox"; import { describe, expect, it } from "vitest"; import type { ClientToolDefinition } from "./pi-embedded-runner/run/params.js"; diff --git a/src/agents/pi-tool-definition-adapter.ts b/src/agents/pi-tool-definition-adapter.ts index 56bfd49d99f..512b483b271 100644 --- a/src/agents/pi-tool-definition-adapter.ts +++ b/src/agents/pi-tool-definition-adapter.ts @@ -2,8 +2,8 @@ import type { AgentTool, AgentToolResult, AgentToolUpdateCallback, -} from "@mariozechner/pi-agent-core"; -import type { ToolDefinition } from "@mariozechner/pi-coding-agent"; +} from "@earendil-works/pi-agent-core"; +import type { ToolDefinition } from "@earendil-works/pi-coding-agent"; import { logDebug, logError } from "../logger.js"; import { redactToolDetail } from "../logging/redact.js"; import { isPlainObject } from "../utils.js"; diff --git a/src/agents/pi-tools.create-openclaw-coding-tools.adds-claude-style-aliases-schemas-without-dropping-g.test.ts b/src/agents/pi-tools.create-openclaw-coding-tools.adds-claude-style-aliases-schemas-without-dropping-g.test.ts index d68035c4187..5ac7040965d 100644 --- a/src/agents/pi-tools.create-openclaw-coding-tools.adds-claude-style-aliases-schemas-without-dropping-g.test.ts +++ b/src/agents/pi-tools.create-openclaw-coding-tools.adds-claude-style-aliases-schemas-without-dropping-g.test.ts @@ -1,7 +1,7 @@ import fs from "node:fs/promises"; import os from "node:os"; 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 { Type } from "typebox"; import { describe, expect, it, vi } from "vitest"; import { createOpenClawReadTool, createSandboxedReadTool } from "./pi-tools.read.js"; diff --git a/src/agents/pi-tools.host-edit.ts b/src/agents/pi-tools.host-edit.ts index dbe6cb37c06..01578e87982 100644 --- a/src/agents/pi-tools.host-edit.ts +++ b/src/agents/pi-tools.host-edit.ts @@ -1,5 +1,5 @@ import path from "node:path"; -import type { AgentToolResult, AgentToolUpdateCallback } from "@mariozechner/pi-agent-core"; +import type { AgentToolResult, AgentToolUpdateCallback } from "@earendil-works/pi-agent-core"; import { expandHomePrefix, resolveOsHomeDir } from "../infra/home-dir.js"; import { getToolParamsRecord } from "./pi-tools.params.js"; import type { AnyAgentTool } from "./pi-tools.types.js"; diff --git a/src/agents/pi-tools.read.host-edit-access.test.ts b/src/agents/pi-tools.read.host-edit-access.test.ts index f1da476f8bc..94ad2c58b29 100644 --- a/src/agents/pi-tools.read.host-edit-access.test.ts +++ b/src/agents/pi-tools.read.host-edit-access.test.ts @@ -12,9 +12,9 @@ const mocks = vi.hoisted(() => ({ operations: undefined as CapturedEditOperations | undefined, })); -vi.mock("@mariozechner/pi-coding-agent", async () => { - const actual = await vi.importActual( - "@mariozechner/pi-coding-agent", +vi.mock("@earendil-works/pi-coding-agent", async () => { + const actual = await vi.importActual( + "@earendil-works/pi-coding-agent", ); return { ...actual, diff --git a/src/agents/pi-tools.read.host-tilde-expansion.test.ts b/src/agents/pi-tools.read.host-tilde-expansion.test.ts index 3be885cd463..441c16d43d3 100644 --- a/src/agents/pi-tools.read.host-tilde-expansion.test.ts +++ b/src/agents/pi-tools.read.host-tilde-expansion.test.ts @@ -19,9 +19,9 @@ const mocks = vi.hoisted(() => ({ writeOps: undefined as CapturedWriteOperations | undefined, })); -vi.mock("@mariozechner/pi-coding-agent", async () => { - const actual = await vi.importActual( - "@mariozechner/pi-coding-agent", +vi.mock("@earendil-works/pi-coding-agent", async () => { + const actual = await vi.importActual( + "@earendil-works/pi-coding-agent", ); return { ...actual, diff --git a/src/agents/pi-tools.read.ts b/src/agents/pi-tools.read.ts index 9dee15413a7..a71e3b18f5d 100644 --- a/src/agents/pi-tools.read.ts +++ b/src/agents/pi-tools.read.ts @@ -1,8 +1,8 @@ import fs from "node:fs/promises"; import path from "node:path"; import { URL } from "node:url"; -import type { AgentToolResult } from "@mariozechner/pi-agent-core"; -import { createEditTool, createReadTool, createWriteTool } from "@mariozechner/pi-coding-agent"; +import type { AgentToolResult } from "@earendil-works/pi-agent-core"; +import { createEditTool, createReadTool, createWriteTool } from "@earendil-works/pi-coding-agent"; import { isWindowsDrivePath } from "../infra/archive-path.js"; import { root as fsRoot, FsSafeError } from "../infra/fs-safe.js"; import { expandHomePrefix, resolveOsHomeDir } from "../infra/home-dir.js"; diff --git a/src/agents/pi-tools.safe-bins.test.ts b/src/agents/pi-tools.safe-bins.test.ts index e375b15c467..d237cd24e8f 100644 --- a/src/agents/pi-tools.safe-bins.test.ts +++ b/src/agents/pi-tools.safe-bins.test.ts @@ -137,7 +137,7 @@ vi.mock("../plugins/tools.js", () => ({ getPluginToolMeta: () => undefined, })); -vi.mock("@mariozechner/pi-coding-agent", () => ({ +vi.mock("@earendil-works/pi-coding-agent", () => ({ AuthStorage: vi.fn(), CURRENT_SESSION_VERSION: 1, ModelRegistry: vi.fn(), diff --git a/src/agents/pi-tools.schema.test.ts b/src/agents/pi-tools.schema.test.ts index d9590d736a0..acd7ebb5ea2 100644 --- a/src/agents/pi-tools.schema.test.ts +++ b/src/agents/pi-tools.schema.test.ts @@ -1,5 +1,5 @@ -import { runAgentLoop, type AgentEvent, type StreamFn } from "@mariozechner/pi-agent-core"; -import { createAssistantMessageEventStream, validateToolArguments } from "@mariozechner/pi-ai"; +import { runAgentLoop, type AgentEvent, type StreamFn } from "@earendil-works/pi-agent-core"; +import { createAssistantMessageEventStream, validateToolArguments } from "@earendil-works/pi-ai"; import { Type, type TSchema } from "typebox"; import { describe, expect, it, vi } from "vitest"; import { wrapToolWithBeforeToolCallHook } from "./pi-tools.before-tool-call.js"; diff --git a/src/agents/pi-tools.ts b/src/agents/pi-tools.ts index 2a2fc8918ef..6bc7140399f 100644 --- a/src/agents/pi-tools.ts +++ b/src/agents/pi-tools.ts @@ -1,4 +1,4 @@ -import { createCodingTools, createReadTool } from "@mariozechner/pi-coding-agent"; +import { createCodingTools, createReadTool } from "@earendil-works/pi-coding-agent"; import type { SourceReplyDeliveryMode } from "../auto-reply/get-reply-options.types.js"; import { HEARTBEAT_RESPONSE_TOOL_NAME } from "../auto-reply/heartbeat-tool-response.js"; import type { ModelCompatConfig } from "../config/types.models.js"; diff --git a/src/agents/pi-tools.workspace-only-false.test.ts b/src/agents/pi-tools.workspace-only-false.test.ts index f7c1c9e6ec1..ac4f81b7d5d 100644 --- a/src/agents/pi-tools.workspace-only-false.test.ts +++ b/src/agents/pi-tools.workspace-only-false.test.ts @@ -1,20 +1,20 @@ import fs from "node:fs/promises"; import os from "node:os"; import path from "node:path"; -import { createReadTool } from "@mariozechner/pi-coding-agent"; +import { createReadTool } from "@earendil-works/pi-coding-agent"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; -vi.mock("@mariozechner/pi-ai", async () => { +vi.mock("@earendil-works/pi-ai", async () => { const original = - await vi.importActual("@mariozechner/pi-ai"); + await vi.importActual("@earendil-works/pi-ai"); return { ...original, }; }); -vi.mock("@mariozechner/pi-ai/oauth", async () => { - const actual = await vi.importActual( - "@mariozechner/pi-ai/oauth", +vi.mock("@earendil-works/pi-ai/oauth", async () => { + const actual = await vi.importActual( + "@earendil-works/pi-ai/oauth", ); return { ...actual, diff --git a/src/agents/plugin-text-transforms.test.ts b/src/agents/plugin-text-transforms.test.ts index 3c637d562b4..63966be3e19 100644 --- a/src/agents/plugin-text-transforms.test.ts +++ b/src/agents/plugin-text-transforms.test.ts @@ -1,10 +1,10 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; import { createAssistantMessageEventStream, type AssistantMessage, type Context, type Model, -} from "@mariozechner/pi-ai"; +} from "@earendil-works/pi-ai"; import { describe, expect, it } from "vitest"; import { applyPluginTextReplacements, diff --git a/src/agents/plugin-text-transforms.ts b/src/agents/plugin-text-transforms.ts index 826a56d4129..8f62046cfc3 100644 --- a/src/agents/plugin-text-transforms.ts +++ b/src/agents/plugin-text-transforms.ts @@ -1,5 +1,5 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import { streamSimple, type AssistantMessageEvent } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import { streamSimple, type AssistantMessageEvent } from "@earendil-works/pi-ai"; import type { PluginTextReplacement, PluginTextTransforms } from "../plugins/cli-backend.types.js"; import { createStreamIteratorWrapper } from "./stream-iterator-wrapper.js"; diff --git a/src/agents/provider-local-service.test.ts b/src/agents/provider-local-service.test.ts index 5eb25bd1486..85338cbf897 100644 --- a/src/agents/provider-local-service.test.ts +++ b/src/agents/provider-local-service.test.ts @@ -2,7 +2,7 @@ import fs from "node:fs/promises"; import net from "node:net"; import os from "node:os"; import path from "node:path"; -import type { Model } from "@mariozechner/pi-ai"; +import type { Model } from "@earendil-works/pi-ai"; import { afterEach, describe, expect, it } from "vitest"; import { attachModelProviderLocalService, diff --git a/src/agents/provider-local-service.ts b/src/agents/provider-local-service.ts index c94c13ee50b..eee0ee6c3b6 100644 --- a/src/agents/provider-local-service.ts +++ b/src/agents/provider-local-service.ts @@ -1,6 +1,6 @@ import { spawn, type ChildProcess } from "node:child_process"; import path from "node:path"; -import type { Api, Model } from "@mariozechner/pi-ai"; +import type { Api, Model } from "@earendil-works/pi-ai"; import type { ModelProviderLocalServiceConfig } from "../config/types.models.js"; import { createSubsystemLogger } from "../logging/subsystem.js"; diff --git a/src/agents/provider-request-config.ts b/src/agents/provider-request-config.ts index 2ead58d9952..a83637c57dd 100644 --- a/src/agents/provider-request-config.ts +++ b/src/agents/provider-request-config.ts @@ -1,4 +1,4 @@ -import type { Api } from "@mariozechner/pi-ai"; +import type { Api } from "@earendil-works/pi-ai"; import type { ModelDefinitionConfig } from "../config/types.js"; import type { ConfiguredModelProviderRequest, diff --git a/src/agents/provider-stream.ts b/src/agents/provider-stream.ts index d0f7493e935..3821ae50225 100644 --- a/src/agents/provider-stream.ts +++ b/src/agents/provider-stream.ts @@ -1,5 +1,5 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import type { Api, Model } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import type { Api, Model } from "@earendil-works/pi-ai"; import type { OpenClawConfig } from "../config/types.openclaw.js"; import { resolveProviderStreamFn } from "../plugins/provider-runtime.js"; import { ensureCustomApiRegistered } from "./custom-api-registry.js"; diff --git a/src/agents/provider-transport-fetch.test.ts b/src/agents/provider-transport-fetch.test.ts index 583c8adc612..281bf380a3f 100644 --- a/src/agents/provider-transport-fetch.test.ts +++ b/src/agents/provider-transport-fetch.test.ts @@ -1,4 +1,4 @@ -import type { Model } from "@mariozechner/pi-ai"; +import type { Model } from "@earendil-works/pi-ai"; import { Stream } from "openai/streaming"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { buildGuardedModelFetch } from "./provider-transport-fetch.js"; diff --git a/src/agents/provider-transport-fetch.ts b/src/agents/provider-transport-fetch.ts index e982521b0b7..f70c9e655b4 100644 --- a/src/agents/provider-transport-fetch.ts +++ b/src/agents/provider-transport-fetch.ts @@ -1,4 +1,4 @@ -import type { Api, Model } from "@mariozechner/pi-ai"; +import type { Api, Model } from "@earendil-works/pi-ai"; import { fetchWithSsrFGuard, withTrustedEnvProxyGuardedFetchMode, diff --git a/src/agents/provider-transport-stream.test.ts b/src/agents/provider-transport-stream.test.ts index 0428a618027..49bdf6e8c40 100644 --- a/src/agents/provider-transport-stream.test.ts +++ b/src/agents/provider-transport-stream.test.ts @@ -1,4 +1,4 @@ -import type { Api, Model } from "@mariozechner/pi-ai"; +import type { Api, Model } from "@earendil-works/pi-ai"; import { describe, expect, it } from "vitest"; import { attachModelProviderLocalService } from "./provider-local-service.js"; import { attachModelProviderRequestTransport } from "./provider-request-config.js"; diff --git a/src/agents/provider-transport-stream.ts b/src/agents/provider-transport-stream.ts index d1ae98d3212..5b25731afaa 100644 --- a/src/agents/provider-transport-stream.ts +++ b/src/agents/provider-transport-stream.ts @@ -1,5 +1,5 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import type { Api, Model } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import type { Api, Model } from "@earendil-works/pi-ai"; import type { OpenClawConfig } from "../config/types.openclaw.js"; import { resolveProviderStreamFn } from "../plugins/provider-runtime.js"; import { createAnthropicMessagesTransportStreamFn } from "./anthropic-transport-stream.js"; diff --git a/src/agents/runtime-plan/build.ts b/src/agents/runtime-plan/build.ts index a24f59c7f98..ba5bb7c7236 100644 --- a/src/agents/runtime-plan/build.ts +++ b/src/agents/runtime-plan/build.ts @@ -1,4 +1,4 @@ -import type { AgentTool } from "@mariozechner/pi-agent-core"; +import type { AgentTool } from "@earendil-works/pi-agent-core"; import { resolveSendableOutboundReplyParts } from "openclaw/plugin-sdk/reply-payload"; import type { TSchema } from "typebox"; import type { ThinkLevel } from "../../auto-reply/thinking.js"; diff --git a/src/agents/runtime-plan/tools.test.ts b/src/agents/runtime-plan/tools.test.ts index 85e7b4744f2..feba414325b 100644 --- a/src/agents/runtime-plan/tools.test.ts +++ b/src/agents/runtime-plan/tools.test.ts @@ -1,4 +1,4 @@ -import type { AgentTool } from "@mariozechner/pi-agent-core"; +import type { AgentTool } from "@earendil-works/pi-agent-core"; import { createNativeOpenAIResponsesModel, createParameterFreeTool, diff --git a/src/agents/runtime-plan/tools.ts b/src/agents/runtime-plan/tools.ts index 6fa6dca1b47..824b9252920 100644 --- a/src/agents/runtime-plan/tools.ts +++ b/src/agents/runtime-plan/tools.ts @@ -1,4 +1,4 @@ -import type { AgentTool } from "@mariozechner/pi-agent-core"; +import type { AgentTool } from "@earendil-works/pi-agent-core"; import type { TSchema } from "typebox"; import type { OpenClawConfig } from "../../config/types.openclaw.js"; import type { ProviderRuntimeModel } from "../../plugins/provider-runtime-model.types.js"; diff --git a/src/agents/runtime-plan/types.ts b/src/agents/runtime-plan/types.ts index 3637634c4b9..e84474a42f7 100644 --- a/src/agents/runtime-plan/types.ts +++ b/src/agents/runtime-plan/types.ts @@ -1,4 +1,4 @@ -import type { AgentTool } from "@mariozechner/pi-agent-core"; +import type { AgentTool } from "@earendil-works/pi-agent-core"; import type { TSchema } from "typebox"; export type AgentRuntimeTransport = "sse" | "websocket" | "auto"; diff --git a/src/agents/schema-normalization-runtime-contract.test.ts b/src/agents/schema-normalization-runtime-contract.test.ts index 34d8f366e25..54e5049035d 100644 --- a/src/agents/schema-normalization-runtime-contract.test.ts +++ b/src/agents/schema-normalization-runtime-contract.test.ts @@ -1,4 +1,4 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; import { createNativeOpenAIResponsesModel, createParameterFreeTool, diff --git a/src/agents/session-raw-append-message.ts b/src/agents/session-raw-append-message.ts index ea8c39d3364..4af375a377d 100644 --- a/src/agents/session-raw-append-message.ts +++ b/src/agents/session-raw-append-message.ts @@ -1,4 +1,4 @@ -import type { SessionManager } from "@mariozechner/pi-coding-agent"; +import type { SessionManager } from "@earendil-works/pi-coding-agent"; const RAW_APPEND_MESSAGE = Symbol("openclaw.session.rawAppendMessage"); diff --git a/src/agents/session-tool-result-guard-wrapper.ts b/src/agents/session-tool-result-guard-wrapper.ts index 318f7e7266c..768cab827fb 100644 --- a/src/agents/session-tool-result-guard-wrapper.ts +++ b/src/agents/session-tool-result-guard-wrapper.ts @@ -1,5 +1,5 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import type { SessionManager } from "@mariozechner/pi-coding-agent"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import type { SessionManager } from "@earendil-works/pi-coding-agent"; import type { OpenClawConfig } from "../config/types.openclaw.js"; import { redactSensitiveText } from "../logging/redact.js"; import { getGlobalHookRunner } from "../plugins/hook-runner-global.js"; @@ -109,7 +109,7 @@ export function guardSessionManager( const hookRunner = getGlobalHookRunner(); const beforeMessageWrite = (event: { - message: import("@mariozechner/pi-agent-core").AgentMessage; + message: import("@earendil-works/pi-agent-core").AgentMessage; }) => { let message = event.message; let changed = false; diff --git a/src/agents/session-tool-result-guard.test.ts b/src/agents/session-tool-result-guard.test.ts index 9db8f1c580a..a48145567a6 100644 --- a/src/agents/session-tool-result-guard.test.ts +++ b/src/agents/session-tool-result-guard.test.ts @@ -1,5 +1,5 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import { SessionManager } from "@mariozechner/pi-coding-agent"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import { SessionManager } from "@earendil-works/pi-coding-agent"; import { describe, expect, it } from "vitest"; import { installSessionToolResultGuard } from "./session-tool-result-guard.js"; import { castAgentMessage } from "./test-helpers/agent-message-fixtures.js"; diff --git a/src/agents/session-tool-result-guard.tool-result-persist-hook.test.ts b/src/agents/session-tool-result-guard.tool-result-persist-hook.test.ts index 46cf83a5742..3f3a532926a 100644 --- a/src/agents/session-tool-result-guard.tool-result-persist-hook.test.ts +++ b/src/agents/session-tool-result-guard.tool-result-persist-hook.test.ts @@ -1,8 +1,8 @@ import fs from "node:fs"; import os from "node:os"; import path from "node:path"; -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import { SessionManager } from "@mariozechner/pi-coding-agent"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import { SessionManager } from "@earendil-works/pi-coding-agent"; import { describe, expect, it, afterEach, vi } from "vitest"; import { initializeGlobalHookRunner, diff --git a/src/agents/session-tool-result-guard.transcript-events.test.ts b/src/agents/session-tool-result-guard.transcript-events.test.ts index a9efbd24e56..aaa66d36ba6 100644 --- a/src/agents/session-tool-result-guard.transcript-events.test.ts +++ b/src/agents/session-tool-result-guard.transcript-events.test.ts @@ -1,5 +1,5 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import { SessionManager } from "@mariozechner/pi-coding-agent"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import { SessionManager } from "@earendil-works/pi-coding-agent"; import { afterEach, describe, expect, it } from "vitest"; import { onSessionTranscriptUpdate, diff --git a/src/agents/session-tool-result-guard.ts b/src/agents/session-tool-result-guard.ts index 2fdb52ab8d8..fca44501394 100644 --- a/src/agents/session-tool-result-guard.ts +++ b/src/agents/session-tool-result-guard.ts @@ -1,5 +1,5 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import type { SessionManager } from "@mariozechner/pi-coding-agent"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import type { SessionManager } from "@earendil-works/pi-coding-agent"; import { boundedJsonUtf8Bytes, firstEnumerableOwnKeys, diff --git a/src/agents/session-transcript-repair.attachments.test.ts b/src/agents/session-transcript-repair.attachments.test.ts index 7428325378e..7daa2a9afe7 100644 --- a/src/agents/session-transcript-repair.attachments.test.ts +++ b/src/agents/session-transcript-repair.attachments.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, it, expect } from "vitest"; import { sanitizeToolCallInputs } from "./session-transcript-repair.js"; import { castAgentMessage, castAgentMessages } from "./test-helpers/agent-message-fixtures.js"; diff --git a/src/agents/session-transcript-repair.test.ts b/src/agents/session-transcript-repair.test.ts index 130b9324606..67baa7e85ea 100644 --- a/src/agents/session-transcript-repair.test.ts +++ b/src/agents/session-transcript-repair.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 { sanitizeToolCallInputs, diff --git a/src/agents/session-transcript-repair.ts b/src/agents/session-transcript-repair.ts index 96ee67f38f8..d18b423e025 100644 --- a/src/agents/session-transcript-repair.ts +++ b/src/agents/session-transcript-repair.ts @@ -1,4 +1,4 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; import { normalizeLowercaseStringOrEmpty, normalizeOptionalString, diff --git a/src/agents/simple-completion-runtime.test.ts b/src/agents/simple-completion-runtime.test.ts index 10145203a06..55fa8eb4e8d 100644 --- a/src/agents/simple-completion-runtime.test.ts +++ b/src/agents/simple-completion-runtime.test.ts @@ -1,4 +1,4 @@ -import type { Model } from "@mariozechner/pi-ai"; +import type { Model } from "@earendil-works/pi-ai"; import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; const hoisted = vi.hoisted(() => ({ @@ -13,7 +13,7 @@ const hoisted = vi.hoisted(() => ({ completeMock: vi.fn(), })); -vi.mock("@mariozechner/pi-ai", () => ({ +vi.mock("@earendil-works/pi-ai", () => ({ completeSimple: hoisted.completeMock, })); diff --git a/src/agents/simple-completion-runtime.ts b/src/agents/simple-completion-runtime.ts index 221ff8f707a..fcece086efc 100644 --- a/src/agents/simple-completion-runtime.ts +++ b/src/agents/simple-completion-runtime.ts @@ -3,7 +3,7 @@ import { type Api, type Model, type ThinkingLevel as SimpleCompletionThinkingLevel, -} from "@mariozechner/pi-ai"; +} from "@earendil-works/pi-ai"; import type { ThinkLevel } from "../auto-reply/thinking.js"; import type { OpenClawConfig } from "../config/types.openclaw.js"; import { formatErrorMessage } from "../infra/errors.js"; diff --git a/src/agents/simple-completion-transport.test.ts b/src/agents/simple-completion-transport.test.ts index 8848127e6c6..5c202045eb9 100644 --- a/src/agents/simple-completion-transport.test.ts +++ b/src/agents/simple-completion-transport.test.ts @@ -1,4 +1,4 @@ -import type { Model } from "@mariozechner/pi-ai"; +import type { Model } from "@earendil-works/pi-ai"; import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; import type { OpenClawConfig } from "../config/config.js"; diff --git a/src/agents/simple-completion-transport.ts b/src/agents/simple-completion-transport.ts index 623f1074061..3a54cf2532a 100644 --- a/src/agents/simple-completion-transport.ts +++ b/src/agents/simple-completion-transport.ts @@ -1,4 +1,4 @@ -import { getApiProvider, type Api, type Model } from "@mariozechner/pi-ai"; +import { getApiProvider, type Api, type Model } from "@earendil-works/pi-ai"; import type { OpenClawConfig } from "../config/types.openclaw.js"; import { createAnthropicVertexStreamFnForModel } from "./anthropic-vertex-stream.js"; import { ensureCustomApiRegistered } from "./custom-api-registry.js"; diff --git a/src/agents/skills/compact-format.test.ts b/src/agents/skills/compact-format.test.ts index 074b33b9dfa..6e1654b28df 100644 --- a/src/agents/skills/compact-format.test.ts +++ b/src/agents/skills/compact-format.test.ts @@ -1,5 +1,5 @@ import os from "node:os"; -import { formatSkillsForPrompt as upstreamFormatSkillsForPrompt } from "@mariozechner/pi-coding-agent"; +import { formatSkillsForPrompt as upstreamFormatSkillsForPrompt } from "@earendil-works/pi-coding-agent"; import { afterEach, beforeEach, describe, expect, it } from "vitest"; import type { OpenClawConfig } from "../../config/config.js"; import { createCanonicalFixtureSkill } from "../skills.test-helpers.js"; diff --git a/src/agents/skills/skill-contract.ts b/src/agents/skills/skill-contract.ts index 1662ed8aa5f..11f1a024a7c 100644 --- a/src/agents/skills/skill-contract.ts +++ b/src/agents/skills/skill-contract.ts @@ -1,4 +1,4 @@ -import type { Skill as CanonicalSkill, SourceInfo } from "@mariozechner/pi-coding-agent"; +import type { Skill as CanonicalSkill, SourceInfo } from "@earendil-works/pi-coding-agent"; export type SourceScope = "user" | "project" | "temporary"; export type SourceOrigin = "package" | "top-level"; diff --git a/src/agents/stream-message-shared.ts b/src/agents/stream-message-shared.ts index e71720a06e2..e669d26d08e 100644 --- a/src/agents/stream-message-shared.ts +++ b/src/agents/stream-message-shared.ts @@ -1,4 +1,4 @@ -import type { AssistantMessage, StopReason, Usage } from "@mariozechner/pi-ai"; +import type { AssistantMessage, StopReason, Usage } from "@earendil-works/pi-ai"; type StreamModelDescriptor = { api: string; diff --git a/src/agents/subagent-spawn.workspace.test.ts b/src/agents/subagent-spawn.workspace.test.ts index 74ffefebe1e..36783b01236 100644 --- a/src/agents/subagent-spawn.workspace.test.ts +++ b/src/agents/subagent-spawn.workspace.test.ts @@ -32,9 +32,9 @@ const hoisted = vi.hoisted(() => ({ let spawnSubagentDirect: typeof import("./subagent-spawn.js").spawnSubagentDirect; let resetSubagentRegistryForTests: typeof import("./subagent-registry.js").resetSubagentRegistryForTests; -vi.mock("@mariozechner/pi-ai/oauth", async () => { - const actual = await vi.importActual( - "@mariozechner/pi-ai/oauth", +vi.mock("@earendil-works/pi-ai/oauth", async () => { + const actual = await vi.importActual( + "@earendil-works/pi-ai/oauth", ); return { ...actual, diff --git a/src/agents/system-prompt-report.ts b/src/agents/system-prompt-report.ts index 21a1085b571..09ca5f99260 100644 --- a/src/agents/system-prompt-report.ts +++ b/src/agents/system-prompt-report.ts @@ -1,4 +1,4 @@ -import type { AgentTool } from "@mariozechner/pi-agent-core"; +import type { AgentTool } from "@earendil-works/pi-agent-core"; import type { SessionSystemPromptReport } from "../config/sessions/types.js"; import { buildBootstrapInjectionStats } from "./bootstrap-budget.js"; import type { EmbeddedContextFile } from "./pi-embedded-helpers.js"; diff --git a/src/agents/test-helpers/agent-message-fixtures.ts b/src/agents/test-helpers/agent-message-fixtures.ts index 9d1f5da85f0..64be4a0bebd 100644 --- a/src/agents/test-helpers/agent-message-fixtures.ts +++ b/src/agents/test-helpers/agent-message-fixtures.ts @@ -1,5 +1,5 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import type { AssistantMessage, UserMessage } from "@mariozechner/pi-ai"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import type { AssistantMessage, UserMessage } from "@earendil-works/pi-ai"; import { ZERO_USAGE_FIXTURE } from "./usage-fixtures.js"; export function castAgentMessage(message: unknown): AgentMessage { diff --git a/src/agents/test-helpers/assistant-message-fixtures.ts b/src/agents/test-helpers/assistant-message-fixtures.ts index 72606a245ad..a95624266f2 100644 --- a/src/agents/test-helpers/assistant-message-fixtures.ts +++ b/src/agents/test-helpers/assistant-message-fixtures.ts @@ -1,4 +1,4 @@ -import type { AssistantMessage } from "@mariozechner/pi-ai"; +import type { AssistantMessage } from "@earendil-works/pi-ai"; import { ZERO_USAGE_FIXTURE } from "./usage-fixtures.js"; export function makeAssistantMessageFixture( diff --git a/src/agents/test-helpers/pi-coding-agent-token-mock.ts b/src/agents/test-helpers/pi-coding-agent-token-mock.ts index a9062ddbfd4..ea978bc2a26 100644 --- a/src/agents/test-helpers/pi-coding-agent-token-mock.ts +++ b/src/agents/test-helpers/pi-coding-agent-token-mock.ts @@ -24,9 +24,9 @@ const piCodingAgentTokenMocks = vi.hoisted(() => { }; }); -vi.mock("@mariozechner/pi-coding-agent", async () => { - const actual = await vi.importActual( - "@mariozechner/pi-coding-agent", +vi.mock("@earendil-works/pi-coding-agent", async () => { + const actual = await vi.importActual( + "@earendil-works/pi-coding-agent", ); return { ...actual, diff --git a/src/agents/test-helpers/pi-embedded-runner-e2e-fixtures.ts b/src/agents/test-helpers/pi-embedded-runner-e2e-fixtures.ts index 8c6de735916..ffb3d57d6ec 100644 --- a/src/agents/test-helpers/pi-embedded-runner-e2e-fixtures.ts +++ b/src/agents/test-helpers/pi-embedded-runner-e2e-fixtures.ts @@ -1,7 +1,7 @@ import fs from "node:fs/promises"; import os from "node:os"; import path from "node:path"; -import type { AssistantMessage } from "@mariozechner/pi-ai"; +import type { AssistantMessage } from "@earendil-works/pi-ai"; import type { OpenClawConfig } from "../../config/types.openclaw.js"; import { buildAttemptReplayMetadata } from "../pi-embedded-runner/run/incomplete-turn.js"; import type { EmbeddedRunAttemptResult } from "../pi-embedded-runner/run/types.js"; diff --git a/src/agents/test-helpers/pi-tool-stubs.ts b/src/agents/test-helpers/pi-tool-stubs.ts index 4a42aed13ee..746fc8830da 100644 --- a/src/agents/test-helpers/pi-tool-stubs.ts +++ b/src/agents/test-helpers/pi-tool-stubs.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 "typebox"; export function createStubTool(name: string): AgentTool { diff --git a/src/agents/test-helpers/usage-fixtures.ts b/src/agents/test-helpers/usage-fixtures.ts index 5b292290c30..ae827cbf575 100644 --- a/src/agents/test-helpers/usage-fixtures.ts +++ b/src/agents/test-helpers/usage-fixtures.ts @@ -1,4 +1,4 @@ -import type { Usage } from "@mariozechner/pi-ai"; +import type { Usage } from "@earendil-works/pi-ai"; export const ZERO_USAGE_FIXTURE: Usage = { input: 0, diff --git a/src/agents/tool-call-id.test.ts b/src/agents/tool-call-id.test.ts index dcb7202c334..7994c94ba84 100644 --- a/src/agents/tool-call-id.test.ts +++ b/src/agents/tool-call-id.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 { castAgentMessages } from "./test-helpers/agent-message-fixtures.js"; import { diff --git a/src/agents/tool-call-id.ts b/src/agents/tool-call-id.ts index 0cfd38e4e8d..133b26b25f4 100644 --- a/src/agents/tool-call-id.ts +++ b/src/agents/tool-call-id.ts @@ -1,5 +1,5 @@ import { createHash } from "node:crypto"; -import type { AgentMessage } from "@mariozechner/pi-agent-core"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; import { hasUnredactedSessionsSpawnAttachments, isAllowedToolCallName, diff --git a/src/agents/tool-images.ts b/src/agents/tool-images.ts index 9937cb03604..100efc025ec 100644 --- a/src/agents/tool-images.ts +++ b/src/agents/tool-images.ts @@ -1,5 +1,5 @@ -import type { AgentToolResult } from "@mariozechner/pi-agent-core"; -import type { ImageContent } from "@mariozechner/pi-ai"; +import type { AgentToolResult } from "@earendil-works/pi-agent-core"; +import type { ImageContent } from "@earendil-works/pi-ai"; import { createSubsystemLogger } from "../logging/subsystem.js"; import { canonicalizeBase64 } from "../media/base64.js"; import { diff --git a/src/agents/tool-replay-repair.live.test.ts b/src/agents/tool-replay-repair.live.test.ts index 0e25628608a..e65841d0509 100644 --- a/src/agents/tool-replay-repair.live.test.ts +++ b/src/agents/tool-replay-repair.live.test.ts @@ -1,6 +1,6 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import { completeSimple, type Api, type Context, type Model } from "@mariozechner/pi-ai"; -import { SessionManager } from "@mariozechner/pi-coding-agent"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import { completeSimple, type Api, type Context, type Model } from "@earendil-works/pi-ai"; +import { SessionManager } from "@earendil-works/pi-coding-agent"; import { Type } from "typebox"; import { describe, expect, it } from "vitest"; import { getRuntimeConfig } from "../config/config.js"; diff --git a/src/agents/tool-search.ts b/src/agents/tool-search.ts index bc7d9fdb208..2bb64c13bb6 100644 --- a/src/agents/tool-search.ts +++ b/src/agents/tool-search.ts @@ -4,8 +4,8 @@ import type { AgentMessage, AgentToolResult, AgentToolUpdateCallback, -} from "@mariozechner/pi-agent-core"; -import type { ToolDefinition } from "@mariozechner/pi-coding-agent"; +} from "@earendil-works/pi-agent-core"; +import type { ToolDefinition } from "@earendil-works/pi-coding-agent"; import { Type } from "typebox"; import type { OpenClawConfig } from "../config/types.openclaw.js"; import { getPluginToolMeta } from "../plugins/tools.js"; diff --git a/src/agents/tools/common.ts b/src/agents/tools/common.ts index becf37bd876..a3d5ba01418 100644 --- a/src/agents/tools/common.ts +++ b/src/agents/tools/common.ts @@ -2,7 +2,7 @@ import type { AgentTool, AgentToolResult, AgentToolUpdateCallback, -} from "@mariozechner/pi-agent-core"; +} from "@earendil-works/pi-agent-core"; import type { TSchema } from "typebox"; import { readLocalFileSafely } from "../../infra/fs-safe.js"; import { detectMime } from "../../media/mime.js"; diff --git a/src/agents/tools/image-tool.helpers.ts b/src/agents/tools/image-tool.helpers.ts index 7dd18ae404d..ab7a178c6d8 100644 --- a/src/agents/tools/image-tool.helpers.ts +++ b/src/agents/tools/image-tool.helpers.ts @@ -1,4 +1,4 @@ -import type { AssistantMessage } from "@mariozechner/pi-ai"; +import type { AssistantMessage } from "@earendil-works/pi-ai"; import type { OpenClawConfig } from "../../config/types.openclaw.js"; import { estimateBase64DecodedBytes } from "../../media/base64.js"; import { normalizeLowercaseStringOrEmpty } from "../../shared/string-coerce.js"; diff --git a/src/agents/tools/media-tool-shared.ts b/src/agents/tools/media-tool-shared.ts index d126bbfd9be..e0b35f72b6d 100644 --- a/src/agents/tools/media-tool-shared.ts +++ b/src/agents/tools/media-tool-shared.ts @@ -1,4 +1,4 @@ -import { type Api, type Model } from "@mariozechner/pi-ai"; +import { type Api, type Model } from "@earendil-works/pi-ai"; import type { AgentModelConfig } from "../../config/types.agents-shared.js"; import type { OpenClawConfig } from "../../config/types.openclaw.js"; import type { SsrFPolicy } from "../../infra/net/ssrf.js"; diff --git a/src/agents/tools/nodes-tool-media.ts b/src/agents/tools/nodes-tool-media.ts index 29abc2d9b22..64a23bdcc99 100644 --- a/src/agents/tools/nodes-tool-media.ts +++ b/src/agents/tools/nodes-tool-media.ts @@ -1,5 +1,5 @@ import crypto from "node:crypto"; -import type { AgentToolResult } from "@mariozechner/pi-agent-core"; +import type { AgentToolResult } from "@earendil-works/pi-agent-core"; import { type CameraFacing, cameraTempPath, diff --git a/src/agents/tools/pdf-tool.helpers.ts b/src/agents/tools/pdf-tool.helpers.ts index 055902eebf4..3f54f68612c 100644 --- a/src/agents/tools/pdf-tool.helpers.ts +++ b/src/agents/tools/pdf-tool.helpers.ts @@ -1,4 +1,4 @@ -import type { AssistantMessage } from "@mariozechner/pi-ai"; +import type { AssistantMessage } from "@earendil-works/pi-ai"; import { resolveAgentModelFallbackValues, resolveAgentModelPrimaryValue, diff --git a/src/agents/tools/pdf-tool.test.ts b/src/agents/tools/pdf-tool.test.ts index b2a60220b8b..4dca5ff913c 100644 --- a/src/agents/tools/pdf-tool.test.ts +++ b/src/agents/tools/pdf-tool.test.ts @@ -15,8 +15,9 @@ import { resetPdfToolAuthEnv, withTempPdfAgentDir } from "./pdf-tool.test-suppor const completeMock = vi.hoisted(() => vi.fn()); -vi.mock("@mariozechner/pi-ai", async () => { - const actual = await vi.importActual("@mariozechner/pi-ai"); +vi.mock("@earendil-works/pi-ai", async () => { + const actual = + await vi.importActual("@earendil-works/pi-ai"); return { ...actual, complete: completeMock, diff --git a/src/agents/tools/pdf-tool.ts b/src/agents/tools/pdf-tool.ts index 32e83e41aa6..6c180cda219 100644 --- a/src/agents/tools/pdf-tool.ts +++ b/src/agents/tools/pdf-tool.ts @@ -1,4 +1,4 @@ -import { type Context, complete } from "@mariozechner/pi-ai"; +import { type Context, complete } from "@earendil-works/pi-ai"; import { Type } from "typebox"; import type { OpenClawConfig } from "../../config/types.openclaw.js"; import { diff --git a/src/agents/transport-message-transform.test.ts b/src/agents/transport-message-transform.test.ts index 0621b2c9809..1e397be5d3b 100644 --- a/src/agents/transport-message-transform.test.ts +++ b/src/agents/transport-message-transform.test.ts @@ -1,4 +1,4 @@ -import type { Api, Context, Model } from "@mariozechner/pi-ai"; +import type { Api, Context, Model } from "@earendil-works/pi-ai"; import { describe, expect, it } from "vitest"; import { transformTransportMessages } from "./transport-message-transform.js"; diff --git a/src/agents/transport-message-transform.ts b/src/agents/transport-message-transform.ts index deebf68da9e..0deb60ed564 100644 --- a/src/agents/transport-message-transform.ts +++ b/src/agents/transport-message-transform.ts @@ -1,4 +1,4 @@ -import type { Api, Context, Model } from "@mariozechner/pi-ai"; +import type { Api, Context, Model } from "@earendil-works/pi-ai"; import { repairToolUseResultPairing } from "./session-transcript-repair.js"; const SYNTHETIC_TOOL_RESULT_APIS = new Set([ diff --git a/src/agents/transport-params-runtime-contract.test.ts b/src/agents/transport-params-runtime-contract.test.ts index 0587bac53d4..c84e5815347 100644 --- a/src/agents/transport-params-runtime-contract.test.ts +++ b/src/agents/transport-params-runtime-contract.test.ts @@ -1,5 +1,5 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import type { Context, Model } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import type { Context, Model } from "@earendil-works/pi-ai"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { GPT_PARALLEL_TOOL_CALLS_PAYLOAD_APIS, diff --git a/src/agents/transport-stream-shared.ts b/src/agents/transport-stream-shared.ts index b961dec7079..e297a3fbc5e 100644 --- a/src/agents/transport-stream-shared.ts +++ b/src/agents/transport-stream-shared.ts @@ -1,4 +1,4 @@ -import { createAssistantMessageEventStream } from "@mariozechner/pi-ai"; +import { createAssistantMessageEventStream } from "@earendil-works/pi-ai"; type TransportUsage = { input: number; diff --git a/src/agents/xai.live.test.ts b/src/agents/xai.live.test.ts index ec19fc89ae3..c133ef54659 100644 --- a/src/agents/xai.live.test.ts +++ b/src/agents/xai.live.test.ts @@ -1,4 +1,4 @@ -import { completeSimple, getModel, streamSimple } from "@mariozechner/pi-ai"; +import { completeSimple, getModel, streamSimple } from "@earendil-works/pi-ai"; import { Type } from "typebox"; import { describe, expect, it } from "vitest"; import { diff --git a/src/agents/zai.live.test.ts b/src/agents/zai.live.test.ts index 5ecf66c6518..32dbe3ef11f 100644 --- a/src/agents/zai.live.test.ts +++ b/src/agents/zai.live.test.ts @@ -1,4 +1,4 @@ -import { completeSimple, getModel } from "@mariozechner/pi-ai"; +import { completeSimple, getModel } from "@earendil-works/pi-ai"; import { describe, expect, it } from "vitest"; import { createSingleUserPromptMessage, diff --git a/src/auto-reply/get-reply-options.types.ts b/src/auto-reply/get-reply-options.types.ts index 8471e6b2a96..27b2a076957 100644 --- a/src/auto-reply/get-reply-options.types.ts +++ b/src/auto-reply/get-reply-options.types.ts @@ -1,4 +1,4 @@ -import type { ImageContent } from "@mariozechner/pi-ai"; +import type { ImageContent } from "@earendil-works/pi-ai"; import type { PromptImageOrderEntry } from "../media/prompt-image-order.js"; import type { ReplyPayload } from "./reply-payload.js"; import type { TypingController } from "./reply/typing.js"; diff --git a/src/auto-reply/handoff-summarizer.ts b/src/auto-reply/handoff-summarizer.ts index 0a063e2ca04..6e085703f56 100644 --- a/src/auto-reply/handoff-summarizer.ts +++ b/src/auto-reply/handoff-summarizer.ts @@ -1,4 +1,4 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; export interface HandoffSnapshot { summary: string; diff --git a/src/auto-reply/reply/agent-runner-memory.ts b/src/auto-reply/reply/agent-runner-memory.ts index 4e821883566..a38c936eb00 100644 --- a/src/auto-reply/reply/agent-runner-memory.ts +++ b/src/auto-reply/reply/agent-runner-memory.ts @@ -1,6 +1,6 @@ import crypto from "node:crypto"; import fs from "node:fs"; -import type { AgentMessage } from "@mariozechner/pi-agent-core"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; import { resolveBootstrapWarningSignaturesSeen } from "../../agents/bootstrap-budget.js"; import { estimateMessagesTokens } from "../../agents/compaction.js"; import { runWithModelFallback } from "../../agents/model-fallback.js"; diff --git a/src/auto-reply/reply/commands-export-session.ts b/src/auto-reply/reply/commands-export-session.ts index 3d585f7db69..b9e97592a2c 100644 --- a/src/auto-reply/reply/commands-export-session.ts +++ b/src/auto-reply/reply/commands-export-session.ts @@ -6,7 +6,7 @@ import { parseSessionEntries, type SessionEntry as PiSessionEntry, type SessionHeader, -} from "@mariozechner/pi-coding-agent"; +} from "@earendil-works/pi-coding-agent"; import { pathExists } from "../../infra/fs-safe.js"; import type { ReplyPayload } from "../types.js"; import { diff --git a/src/auto-reply/reply/commands-system-prompt.ts b/src/auto-reply/reply/commands-system-prompt.ts index 01d0280e808..8442c86df21 100644 --- a/src/auto-reply/reply/commands-system-prompt.ts +++ b/src/auto-reply/reply/commands-system-prompt.ts @@ -1,4 +1,4 @@ -import type { AgentTool } from "@mariozechner/pi-agent-core"; +import type { AgentTool } from "@earendil-works/pi-agent-core"; import { isAcpRuntimeSpawnAvailable } from "../../acp/runtime/availability.js"; import { resolveSessionAgentIds } from "../../agents/agent-scope.js"; import { resolveBootstrapContextForRun } from "../../agents/bootstrap-files.js"; diff --git a/src/auto-reply/reply/conversation-label-generator.test.ts b/src/auto-reply/reply/conversation-label-generator.test.ts index 0671181b70c..d7fe4210371 100644 --- a/src/auto-reply/reply/conversation-label-generator.test.ts +++ b/src/auto-reply/reply/conversation-label-generator.test.ts @@ -8,9 +8,9 @@ const resolveDefaultModelForAgent = vi.hoisted(() => vi.fn()); const resolveModelAsync = vi.hoisted(() => vi.fn()); const prepareModelForSimpleCompletion = vi.hoisted(() => vi.fn()); -vi.mock("@mariozechner/pi-ai", async () => { +vi.mock("@earendil-works/pi-ai", async () => { const original = - await vi.importActual("@mariozechner/pi-ai"); + await vi.importActual("@earendil-works/pi-ai"); return { ...original, completeSimple, diff --git a/src/auto-reply/reply/conversation-label-generator.ts b/src/auto-reply/reply/conversation-label-generator.ts index b84dc726b40..9b97a4bf72e 100644 --- a/src/auto-reply/reply/conversation-label-generator.ts +++ b/src/auto-reply/reply/conversation-label-generator.ts @@ -1,4 +1,4 @@ -import { completeSimple, type TextContent } from "@mariozechner/pi-ai"; +import { completeSimple, type TextContent } from "@earendil-works/pi-ai"; import { requireApiKey } from "../../agents/model-auth.js"; import { resolveDefaultModelForAgent } from "../../agents/model-selection.js"; import { resolveModelAsync } from "../../agents/pi-embedded-runner/model.js"; diff --git a/src/auto-reply/reply/session-fork.runtime.ts b/src/auto-reply/reply/session-fork.runtime.ts index 2c6197bf500..14375aaae11 100644 --- a/src/auto-reply/reply/session-fork.runtime.ts +++ b/src/auto-reply/reply/session-fork.runtime.ts @@ -8,7 +8,7 @@ import { type FileEntry, type SessionEntry as PiSessionEntry, type SessionHeader, -} from "@mariozechner/pi-coding-agent"; +} from "@earendil-works/pi-coding-agent"; import { derivePromptTokens } from "../../agents/usage.js"; import { resolveSessionFilePath, diff --git a/src/auto-reply/reply/session-transcript-replay.ts b/src/auto-reply/reply/session-transcript-replay.ts index b7afdbc9763..8b843d24980 100644 --- a/src/auto-reply/reply/session-transcript-replay.ts +++ b/src/auto-reply/reply/session-transcript-replay.ts @@ -1,7 +1,7 @@ import fs from "node:fs"; import fsp from "node:fs/promises"; import path from "node:path"; -import { CURRENT_SESSION_VERSION } from "@mariozechner/pi-coding-agent"; +import { CURRENT_SESSION_VERSION } from "@earendil-works/pi-coding-agent"; /** Tail kept so DM continuity survives silent session rotations. */ export const DEFAULT_REPLAY_MAX_MESSAGES = 6; diff --git a/src/channels/plugins/message-action-dispatch.ts b/src/channels/plugins/message-action-dispatch.ts index 224c70088fc..aa73da4700a 100644 --- a/src/channels/plugins/message-action-dispatch.ts +++ b/src/channels/plugins/message-action-dispatch.ts @@ -1,4 +1,4 @@ -import type { AgentToolResult } from "@mariozechner/pi-agent-core"; +import type { AgentToolResult } from "@earendil-works/pi-agent-core"; import { getChannelPlugin } from "./index.js"; import type { ChannelMessageActionContext } from "./types.public.js"; diff --git a/src/channels/plugins/types.core.ts b/src/channels/plugins/types.core.ts index 2ee3fa29c77..0d6e7e34af6 100644 --- a/src/channels/plugins/types.core.ts +++ b/src/channels/plugins/types.core.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 { TSchema } from "typebox"; import type { ReplyPayload } from "../../auto-reply/reply-payload.js"; import type { MsgContext } from "../../auto-reply/templating.js"; diff --git a/src/cli/skills-cli.test.ts b/src/cli/skills-cli.test.ts index 509c1831005..59d75f51e93 100644 --- a/src/cli/skills-cli.test.ts +++ b/src/cli/skills-cli.test.ts @@ -4,7 +4,7 @@ import { createEmptyInstallChecks } from "./requirements-test-fixtures.js"; import { formatSkillInfo, formatSkillsCheck, formatSkillsList } from "./skills-cli.format.js"; // Unit tests: don't pay the runtime cost of loading/parsing the real skills loader. -vi.mock("@mariozechner/pi-coding-agent", () => ({ +vi.mock("@earendil-works/pi-coding-agent", () => ({ loadSkillsFromDir: () => ({ skills: [] }), formatSkillsForPrompt: () => "", })); diff --git a/src/commands/chutes-oauth.ts b/src/commands/chutes-oauth.ts index 7ad91d14184..86da7aafa14 100644 --- a/src/commands/chutes-oauth.ts +++ b/src/commands/chutes-oauth.ts @@ -1,6 +1,6 @@ import { randomBytes } from "node:crypto"; import { createServer } from "node:http"; -import type { OAuthCredentials } from "@mariozechner/pi-ai"; +import type { OAuthCredentials } from "@earendil-works/pi-ai"; import type { ChutesOAuthAppConfig } from "../agents/chutes-oauth.js"; import { CHUTES_AUTHORIZE_ENDPOINT, diff --git a/src/commands/models/list.list-command.ts b/src/commands/models/list.list-command.ts index 5e8802dbe58..2d9671d43e7 100644 --- a/src/commands/models/list.list-command.ts +++ b/src/commands/models/list.list-command.ts @@ -1,5 +1,5 @@ -import type { Api, Model } from "@mariozechner/pi-ai"; -import type { ModelRegistry } from "@mariozechner/pi-coding-agent"; +import type { Api, Model } from "@earendil-works/pi-ai"; +import type { ModelRegistry } from "@earendil-works/pi-coding-agent"; import { parseModelRef } from "../../agents/model-selection.js"; import type { RuntimeEnv } from "../../runtime.js"; import { createLazyImportLoader } from "../../shared/lazy-promise.js"; diff --git a/src/commands/models/list.provider-catalog.ts b/src/commands/models/list.provider-catalog.ts index 4d9aaf482f6..e242bd3f5b2 100644 --- a/src/commands/models/list.provider-catalog.ts +++ b/src/commands/models/list.provider-catalog.ts @@ -1,4 +1,4 @@ -import type { Api, Model } from "@mariozechner/pi-ai"; +import type { Api, Model } from "@earendil-works/pi-ai"; import { normalizeProviderId } from "../../agents/provider-id.js"; import type { ModelProviderConfig } from "../../config/types.models.js"; import type { OpenClawConfig } from "../../config/types.openclaw.js"; diff --git a/src/commands/models/list.registry-load.ts b/src/commands/models/list.registry-load.ts index 997962ab81f..6dcb80e7e94 100644 --- a/src/commands/models/list.registry-load.ts +++ b/src/commands/models/list.registry-load.ts @@ -1,5 +1,5 @@ -import type { Api, Model } from "@mariozechner/pi-ai"; -import type { ModelRegistry } from "@mariozechner/pi-coding-agent"; +import type { Api, Model } from "@earendil-works/pi-ai"; +import type { ModelRegistry } from "@earendil-works/pi-coding-agent"; import { resolveDefaultAgentDir } from "../../agents/agent-scope.js"; import { shouldSuppressBuiltInModel } from "../../agents/model-suppression.js"; import { discoverAuthStorage, discoverModels } from "../../agents/pi-model-discovery.js"; diff --git a/src/commands/models/list.registry.ts b/src/commands/models/list.registry.ts index ce810efe797..217f849874e 100644 --- a/src/commands/models/list.registry.ts +++ b/src/commands/models/list.registry.ts @@ -1,5 +1,5 @@ -import type { Api, Model } from "@mariozechner/pi-ai"; -import type { ModelRegistry } from "@mariozechner/pi-coding-agent"; +import type { Api, Model } from "@earendil-works/pi-ai"; +import type { ModelRegistry } from "@earendil-works/pi-coding-agent"; import { resolveDefaultAgentDir } from "../../agents/agent-scope.js"; import { shouldSuppressBuiltInModel, diff --git a/src/commands/models/list.row-sources.ts b/src/commands/models/list.row-sources.ts index 997a0f37ceb..ccb68c80ecc 100644 --- a/src/commands/models/list.row-sources.ts +++ b/src/commands/models/list.row-sources.ts @@ -1,4 +1,4 @@ -import type { ModelRegistry } from "@mariozechner/pi-coding-agent"; +import type { ModelRegistry } from "@earendil-works/pi-coding-agent"; import { appendCatalogSupplementRows, appendAuthenticatedCatalogRows, diff --git a/src/commands/models/list.rows.ts b/src/commands/models/list.rows.ts index fa16f2bc7d4..450bb0686fb 100644 --- a/src/commands/models/list.rows.ts +++ b/src/commands/models/list.rows.ts @@ -1,5 +1,5 @@ -import type { Api, Model } from "@mariozechner/pi-ai"; -import type { ModelRegistry } from "@mariozechner/pi-coding-agent"; +import type { Api, Model } from "@earendil-works/pi-ai"; +import type { ModelRegistry } from "@earendil-works/pi-coding-agent"; import { DEFAULT_CONTEXT_TOKENS } from "../../agents/defaults.js"; import { shouldSuppressBuiltInModel, diff --git a/src/commands/models/scan.ts b/src/commands/models/scan.ts index 56c1c72d1b4..c9efe2a0b01 100644 --- a/src/commands/models/scan.ts +++ b/src/commands/models/scan.ts @@ -1,5 +1,5 @@ import { cancel, multiselect as clackMultiselect, isCancel } from "@clack/prompts"; -import { getEnvApiKey } from "@mariozechner/pi-ai"; +import { getEnvApiKey } from "@earendil-works/pi-ai"; import { resolveApiKeyForProvider } from "../../agents/model-auth.js"; import { type ModelScanResult, scanOpenRouterModels } from "../../agents/model-scan.js"; import { formatCliCommand } from "../../cli/command-format.js"; diff --git a/src/commands/onboard-auth.test.ts b/src/commands/onboard-auth.test.ts index b356ecd65d7..4f763c77726 100644 --- a/src/commands/onboard-auth.test.ts +++ b/src/commands/onboard-auth.test.ts @@ -1,7 +1,7 @@ import fs from "node:fs/promises"; import os from "node:os"; import path from "node:path"; -import type { OAuthCredentials } from "@mariozechner/pi-ai"; +import type { OAuthCredentials } from "@earendil-works/pi-ai"; import { afterEach, describe, expect, it, vi } from "vitest"; import { applyAuthProfileConfig, diff --git a/src/config/sessions/transcript-append.ts b/src/config/sessions/transcript-append.ts index 9f88b786427..39ff44f09d1 100644 --- a/src/config/sessions/transcript-append.ts +++ b/src/config/sessions/transcript-append.ts @@ -11,12 +11,12 @@ import { const TRANSCRIPT_APPEND_SCAN_CHUNK_BYTES = 64 * 1024; const SESSION_MANAGER_APPEND_MAX_BYTES = 8 * 1024 * 1024; -let piCodingAgentModulePromise: Promise | null = +let piCodingAgentModulePromise: Promise | null = null; const transcriptAppendQueues = new Map>(); async function loadCurrentSessionVersion(): Promise { - piCodingAgentModulePromise ??= import("@mariozechner/pi-coding-agent"); + piCodingAgentModulePromise ??= import("@earendil-works/pi-coding-agent"); return (await piCodingAgentModulePromise).CURRENT_SESSION_VERSION; } diff --git a/src/config/sessions/transcript.ts b/src/config/sessions/transcript.ts index 7ebd91e490e..e0b08d5a28f 100644 --- a/src/config/sessions/transcript.ts +++ b/src/config/sessions/transcript.ts @@ -1,6 +1,6 @@ import fs from "node:fs"; import path from "node:path"; -import type { SessionManager } from "@mariozechner/pi-coding-agent"; +import type { SessionManager } from "@earendil-works/pi-coding-agent"; import type { SessionWriteLockAcquireTimeoutConfig } from "../../agents/session-write-lock.js"; import { formatErrorMessage } from "../../infra/errors.js"; import { emitSessionTranscriptUpdate } from "../../sessions/transcript-events.js"; @@ -18,11 +18,13 @@ import { appendSessionTranscriptMessage } from "./transcript-append.js"; import { resolveMirroredTranscriptText } from "./transcript-mirror.js"; import type { SessionEntry } from "./types.js"; -let piCodingAgentModulePromise: Promise | null = +let piCodingAgentModulePromise: Promise | null = null; -async function loadPiCodingAgentModule(): Promise { - piCodingAgentModulePromise ??= import("@mariozechner/pi-coding-agent"); +async function loadPiCodingAgentModule(): Promise< + typeof import("@earendil-works/pi-coding-agent") +> { + piCodingAgentModulePromise ??= import("@earendil-works/pi-coding-agent"); return await piCodingAgentModulePromise; } diff --git a/src/config/sessions/types.ts b/src/config/sessions/types.ts index 5276e4ffea4..3e9198ccc89 100644 --- a/src/config/sessions/types.ts +++ b/src/config/sessions/types.ts @@ -1,5 +1,5 @@ import crypto from "node:crypto"; -import type { Skill } from "@mariozechner/pi-coding-agent"; +import type { Skill } from "@earendil-works/pi-coding-agent"; import type { ChatType } from "../../channels/chat-type.js"; import type { ChannelId } from "../../channels/plugins/channel-id.types.js"; import { normalizeOptionalString } from "../../shared/string-coerce.js"; diff --git a/src/config/types.models.ts b/src/config/types.models.ts index 7a7b18900ad..5a586b35718 100644 --- a/src/config/types.models.ts +++ b/src/config/types.models.ts @@ -2,7 +2,7 @@ import type { AnthropicMessagesCompat, OpenAICompletionsCompat, OpenAIResponsesCompat, -} from "@mariozechner/pi-ai"; +} from "@earendil-works/pi-ai"; import type { AgentRuntimePolicyConfig } from "./types.agents-shared.js"; import type { ConfiguredModelProviderRequest } from "./types.provider-request.js"; import type { SecretInput } from "./types.secrets.js"; diff --git a/src/context-engine/context-engine.test.ts b/src/context-engine/context-engine.test.ts index e1cc4c83804..dd28de90fa8 100644 --- a/src/context-engine/context-engine.test.ts +++ b/src/context-engine/context-engine.test.ts @@ -1,4 +1,4 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import type { MemoryCitationsMode } from "../config/types.memory.js"; import type { OpenClawConfig } from "../config/types.openclaw.js"; diff --git a/src/context-engine/legacy.ts b/src/context-engine/legacy.ts index 88830bebb05..39cdfa9b95f 100644 --- a/src/context-engine/legacy.ts +++ b/src/context-engine/legacy.ts @@ -1,4 +1,4 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; import type { MemoryCitationsMode } from "../config/types.memory.js"; import { delegateCompactionToRuntime } from "./delegate.js"; import type { diff --git a/src/context-engine/types.ts b/src/context-engine/types.ts index b870192a3ee..4438a3f5f55 100644 --- a/src/context-engine/types.ts +++ b/src/context-engine/types.ts @@ -1,4 +1,4 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; import type { MemoryCitationsMode } from "../config/types.memory.js"; // Result types diff --git a/src/gateway/gateway-models.profiles.live.test.ts b/src/gateway/gateway-models.profiles.live.test.ts index ac4f54b3ba1..6a1d79ad425 100644 --- a/src/gateway/gateway-models.profiles.live.test.ts +++ b/src/gateway/gateway-models.profiles.live.test.ts @@ -12,7 +12,7 @@ import { type KnownProvider, type Model, type ModelThinkingLevel, -} from "@mariozechner/pi-ai"; +} from "@earendil-works/pi-ai"; import { afterEach, describe, expect, it } from "vitest"; import { resolveAgentWorkspaceDir, resolveDefaultAgentDir } from "../agents/agent-scope.js"; import { diff --git a/src/gateway/server-methods/chat-transcript-inject.ts b/src/gateway/server-methods/chat-transcript-inject.ts index ef5299b322a..a04187a1cf3 100644 --- a/src/gateway/server-methods/chat-transcript-inject.ts +++ b/src/gateway/server-methods/chat-transcript-inject.ts @@ -1,4 +1,4 @@ -import type { SessionManager } from "@mariozechner/pi-coding-agent"; +import type { SessionManager } from "@earendil-works/pi-coding-agent"; import type { SessionWriteLockAcquireTimeoutConfig } from "../../agents/session-write-lock.js"; import { appendSessionTranscriptMessage } from "../../config/sessions/transcript-append.js"; import { formatErrorMessage } from "../../infra/errors.js"; diff --git a/src/gateway/server-methods/chat.abort-persistence.test.ts b/src/gateway/server-methods/chat.abort-persistence.test.ts index 1b9fb0feade..29db6e05d89 100644 --- a/src/gateway/server-methods/chat.abort-persistence.test.ts +++ b/src/gateway/server-methods/chat.abort-persistence.test.ts @@ -1,7 +1,7 @@ import fs from "node:fs/promises"; import os from "node:os"; import path from "node:path"; -import { CURRENT_SESSION_VERSION } from "@mariozechner/pi-coding-agent"; +import { CURRENT_SESSION_VERSION } from "@earendil-works/pi-coding-agent"; import { afterEach, describe, expect, it, vi } from "vitest"; import { createActiveRun, diff --git a/src/gateway/server-methods/chat.directive-tags.test.ts b/src/gateway/server-methods/chat.directive-tags.test.ts index 12c08f6e4c2..6041fe62073 100644 --- a/src/gateway/server-methods/chat.directive-tags.test.ts +++ b/src/gateway/server-methods/chat.directive-tags.test.ts @@ -1,7 +1,7 @@ import fs from "node:fs"; import os from "node:os"; import path from "node:path"; -import { CURRENT_SESSION_VERSION } from "@mariozechner/pi-coding-agent"; +import { CURRENT_SESSION_VERSION } from "@earendil-works/pi-coding-agent"; import { afterEach, describe, expect, it, vi } from "vitest"; import type { ModelCatalogEntry } from "../../agents/model-catalog.types.js"; import type { MsgContext } from "../../auto-reply/templating.js"; diff --git a/src/gateway/server-methods/chat.test-helpers.ts b/src/gateway/server-methods/chat.test-helpers.ts index 602a732ce34..69fc5399b76 100644 --- a/src/gateway/server-methods/chat.test-helpers.ts +++ b/src/gateway/server-methods/chat.test-helpers.ts @@ -1,7 +1,7 @@ import fs from "node:fs"; import os from "node:os"; import path from "node:path"; -import { CURRENT_SESSION_VERSION } from "@mariozechner/pi-coding-agent"; +import { CURRENT_SESSION_VERSION } from "@earendil-works/pi-coding-agent"; export function createTranscriptFixtureSync(params: { prefix: string; diff --git a/src/gateway/server-methods/chat.ts b/src/gateway/server-methods/chat.ts index cd49bd6846c..e5e21417c9f 100644 --- a/src/gateway/server-methods/chat.ts +++ b/src/gateway/server-methods/chat.ts @@ -1,8 +1,8 @@ import { createHash } from "node:crypto"; import fs from "node:fs"; import path from "node:path"; -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import { CURRENT_SESSION_VERSION } from "@mariozechner/pi-coding-agent"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import { CURRENT_SESSION_VERSION } from "@earendil-works/pi-coding-agent"; import { resolveSendableOutboundReplyParts } from "openclaw/plugin-sdk/reply-payload"; import { resolveAgentWorkspaceDir, resolveSessionAgentId } from "../../agents/agent-scope.js"; import { rewriteTranscriptEntriesInSessionFile } from "../../agents/pi-embedded-runner/transcript-rewrite.js"; diff --git a/src/gateway/server-methods/sessions.ts b/src/gateway/server-methods/sessions.ts index 29ac01b8499..abe6b4525bd 100644 --- a/src/gateway/server-methods/sessions.ts +++ b/src/gateway/server-methods/sessions.ts @@ -1,7 +1,7 @@ import { randomUUID } from "node:crypto"; import fs from "node:fs"; import path from "node:path"; -import { CURRENT_SESSION_VERSION } from "@mariozechner/pi-coding-agent"; +import { CURRENT_SESSION_VERSION } from "@earendil-works/pi-coding-agent"; import { resolveModelAgentRuntimeMetadata } from "../../agents/agent-runtime-metadata.js"; import { listAgentIds, diff --git a/src/gateway/session-compaction-checkpoints.test.ts b/src/gateway/session-compaction-checkpoints.test.ts index ce575c7b1d6..753aed6af32 100644 --- a/src/gateway/session-compaction-checkpoints.test.ts +++ b/src/gateway/session-compaction-checkpoints.test.ts @@ -2,8 +2,8 @@ import fsSync from "node:fs"; import fs from "node:fs/promises"; import os from "node:os"; import path from "node:path"; -import type { AssistantMessage } from "@mariozechner/pi-ai"; -import { CURRENT_SESSION_VERSION, SessionManager } from "@mariozechner/pi-coding-agent"; +import type { AssistantMessage } from "@earendil-works/pi-ai"; +import { CURRENT_SESSION_VERSION, SessionManager } from "@earendil-works/pi-coding-agent"; import { afterEach, describe, expect, test, vi } from "vitest"; import type { OpenClawConfig } from "../config/types.openclaw.js"; import { diff --git a/src/gateway/session-compaction-checkpoints.ts b/src/gateway/session-compaction-checkpoints.ts index ccef53e7f85..89917b5f283 100644 --- a/src/gateway/session-compaction-checkpoints.ts +++ b/src/gateway/session-compaction-checkpoints.ts @@ -6,7 +6,7 @@ import { migrateSessionEntries, SessionManager, type FileEntry as PiSessionFileEntry, -} from "@mariozechner/pi-coding-agent"; +} from "@earendil-works/pi-coding-agent"; import { updateSessionStore } from "../config/sessions.js"; import type { SessionCompactionCheckpoint, diff --git a/src/gateway/session-reset-service.ts b/src/gateway/session-reset-service.ts index 69e7e7f7522..0f960034259 100644 --- a/src/gateway/session-reset-service.ts +++ b/src/gateway/session-reset-service.ts @@ -1,7 +1,7 @@ import { randomUUID } from "node:crypto"; import fs from "node:fs"; import path from "node:path"; -import { CURRENT_SESSION_VERSION } from "@mariozechner/pi-coding-agent"; +import { CURRENT_SESSION_VERSION } from "@earendil-works/pi-coding-agent"; import { getAcpSessionManager } from "../acp/control-plane/manager.js"; import { getAcpRuntimeBackend } from "../acp/runtime/registry.js"; import { readAcpSessionEntry, upsertAcpSessionMeta } from "../acp/runtime/session-meta.js"; diff --git a/src/gateway/session-utils.fs.test.ts b/src/gateway/session-utils.fs.test.ts index 56e507d4e62..194b0d0faf9 100644 --- a/src/gateway/session-utils.fs.test.ts +++ b/src/gateway/session-utils.fs.test.ts @@ -1,7 +1,7 @@ import fs from "node:fs"; import os from "node:os"; import path from "node:path"; -import { SessionManager } from "@mariozechner/pi-coding-agent"; +import { SessionManager } from "@earendil-works/pi-coding-agent"; import { afterAll, afterEach, beforeAll, describe, expect, test, vi } from "vitest"; import { createToolSummaryPreviewTranscriptLines } from "./session-preview.test-helpers.js"; import { clearSessionTranscriptIndexCache } from "./session-transcript-index.fs.js"; diff --git a/src/gateway/sessions-history-http.test.ts b/src/gateway/sessions-history-http.test.ts index 68c824d0c04..d2107f09af8 100644 --- a/src/gateway/sessions-history-http.test.ts +++ b/src/gateway/sessions-history-http.test.ts @@ -1,7 +1,7 @@ import fs from "node:fs/promises"; import os from "node:os"; import path from "node:path"; -import type { AssistantMessage } from "@mariozechner/pi-ai"; +import type { AssistantMessage } from "@earendil-works/pi-ai"; import { afterEach, describe, expect, test } from "vitest"; import { appendAssistantMessageToSessionTranscript, diff --git a/src/gateway/test/server-sessions.test-helpers.ts b/src/gateway/test/server-sessions.test-helpers.ts index 09b6a261dd4..0109b6b7048 100644 --- a/src/gateway/test/server-sessions.test-helpers.ts +++ b/src/gateway/test/server-sessions.test-helpers.ts @@ -2,7 +2,7 @@ import fsSync from "node:fs"; import fs from "node:fs/promises"; import os from "node:os"; import path from "node:path"; -import type { AssistantMessage, UserMessage } from "@mariozechner/pi-ai"; +import type { AssistantMessage, UserMessage } from "@earendil-works/pi-ai"; import { afterAll, beforeAll, beforeEach, expect, vi } from "vitest"; import type { SessionEntry } from "../../config/sessions.js"; import type { InternalHookEvent } from "../../hooks/internal-hooks.js"; @@ -19,12 +19,12 @@ import { } from "../test-helpers.js"; let sessionManagerModulePromise: - | Promise + | Promise | undefined; let gatewayConfigModulePromise: Promise | undefined; export async function getSessionManagerModule() { - sessionManagerModulePromise ??= import("@mariozechner/pi-coding-agent"); + sessionManagerModulePromise ??= import("@earendil-works/pi-coding-agent"); return await sessionManagerModulePromise; } diff --git a/src/infra/outbound/message-action-runner.ts b/src/infra/outbound/message-action-runner.ts index 119f6eb047e..019a16527a4 100644 --- a/src/infra/outbound/message-action-runner.ts +++ b/src/infra/outbound/message-action-runner.ts @@ -1,4 +1,4 @@ -import type { AgentToolResult } from "@mariozechner/pi-agent-core"; +import type { AgentToolResult } from "@earendil-works/pi-agent-core"; import { resolveSessionAgentId } from "../../agents/agent-scope.js"; import { readNumberParam, diff --git a/src/infra/outbound/outbound-send-service.ts b/src/infra/outbound/outbound-send-service.ts index 466f6dda96d..d2c67e264e5 100644 --- a/src/infra/outbound/outbound-send-service.ts +++ b/src/infra/outbound/outbound-send-service.ts @@ -1,4 +1,4 @@ -import type { AgentToolResult } from "@mariozechner/pi-agent-core"; +import type { AgentToolResult } from "@earendil-works/pi-agent-core"; import type { ReplyPayload } from "../../auto-reply/reply-payload.js"; import { dispatchChannelMessageAction } from "../../channels/plugins/message-action-dispatch.js"; import type { diff --git a/src/media-understanding/image.test.ts b/src/media-understanding/image.test.ts index 8b2a7430a14..6ca1f267308 100644 --- a/src/media-understanding/image.test.ts +++ b/src/media-understanding/image.test.ts @@ -48,8 +48,9 @@ type AuthRequestCall = { store?: unknown; }; -vi.mock("@mariozechner/pi-ai", async () => { - const actual = await vi.importActual("@mariozechner/pi-ai"); +vi.mock("@earendil-works/pi-ai", async () => { + const actual = + await vi.importActual("@earendil-works/pi-ai"); return { ...actual, complete: completeMock, diff --git a/src/media-understanding/image.ts b/src/media-understanding/image.ts index 2ea8cb3d1c9..3a18ab02081 100644 --- a/src/media-understanding/image.ts +++ b/src/media-understanding/image.ts @@ -1,5 +1,5 @@ -import type { Api, Context, Model, ProviderStreamOptions } from "@mariozechner/pi-ai"; -import { complete } from "@mariozechner/pi-ai"; +import type { Api, Context, Model, ProviderStreamOptions } from "@earendil-works/pi-ai"; +import { complete } from "@earendil-works/pi-ai"; import { isMinimaxVlmModel, minimaxUnderstandImage } from "../agents/minimax-vlm.js"; import { getApiKeyForModel, diff --git a/src/plugin-sdk/agent-harness-runtime.ts b/src/plugin-sdk/agent-harness-runtime.ts index f82f3c45e4f..743cc05f4a5 100644 --- a/src/plugin-sdk/agent-harness-runtime.ts +++ b/src/plugin-sdk/agent-harness-runtime.ts @@ -16,7 +16,7 @@ import { truncateUtf16Safe } from "../utils.js"; export const TOOL_PROGRESS_OUTPUT_MAX_CHARS = 8_000; -export type { AgentMessage } from "@mariozechner/pi-agent-core"; +export type { AgentMessage } from "@earendil-works/pi-agent-core"; export type { AgentHarness, AgentHarnessAttemptParams, diff --git a/src/plugin-sdk/provider-stream-shared.test.ts b/src/plugin-sdk/provider-stream-shared.test.ts index 809902c0d89..43b63ccc451 100644 --- a/src/plugin-sdk/provider-stream-shared.test.ts +++ b/src/plugin-sdk/provider-stream-shared.test.ts @@ -1,4 +1,4 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; import { describe, expect, it } from "vitest"; import { createDeepSeekV4OpenAICompatibleThinkingWrapper, diff --git a/src/plugin-sdk/provider-stream-shared.ts b/src/plugin-sdk/provider-stream-shared.ts index 0b9faac5220..f9fe7779197 100644 --- a/src/plugin-sdk/provider-stream-shared.ts +++ b/src/plugin-sdk/provider-stream-shared.ts @@ -1,5 +1,5 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import { streamSimple } from "@mariozechner/pi-ai"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import { streamSimple } from "@earendil-works/pi-ai"; import { streamWithPayloadPatch } from "../agents/pi-embedded-runner/stream-payload-utils.js"; import { normalizeLowercaseStringOrEmpty } from "../shared/string-coerce.js"; import type { ProviderWrapStreamFnContext } from "./plugin-entry.js"; diff --git a/src/plugin-sdk/provider-stream.test.ts b/src/plugin-sdk/provider-stream.test.ts index 73a17a82bdc..a4f1d2b727e 100644 --- a/src/plugin-sdk/provider-stream.test.ts +++ b/src/plugin-sdk/provider-stream.test.ts @@ -1,4 +1,4 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; import { describe, expect, it } from "vitest"; import { VERSION } from "../version.js"; import { diff --git a/src/plugin-sdk/test-helpers/agents/openclaw-owned-tool-runtime-contract.ts b/src/plugin-sdk/test-helpers/agents/openclaw-owned-tool-runtime-contract.ts index 533833adeff..1fd99558b27 100644 --- a/src/plugin-sdk/test-helpers/agents/openclaw-owned-tool-runtime-contract.ts +++ b/src/plugin-sdk/test-helpers/agents/openclaw-owned-tool-runtime-contract.ts @@ -1,4 +1,4 @@ -import type { AgentToolResult } from "@mariozechner/pi-agent-core"; +import type { AgentToolResult } from "@earendil-works/pi-agent-core"; import { vi } from "vitest"; import { resetAdjustedParamsByToolCallIdForTests } from "../../../agents/pi-tools.before-tool-call.state.js"; import type { diff --git a/src/plugin-sdk/test-helpers/agents/transcript-repair-runtime-contract.ts b/src/plugin-sdk/test-helpers/agents/transcript-repair-runtime-contract.ts index 30da2592e29..65111854b66 100644 --- a/src/plugin-sdk/test-helpers/agents/transcript-repair-runtime-contract.ts +++ b/src/plugin-sdk/test-helpers/agents/transcript-repair-runtime-contract.ts @@ -1,4 +1,4 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; export const QUEUED_USER_MESSAGE_MARKER = "[Queued user message that arrived while the previous turn was still active]"; diff --git a/src/plugin-sdk/test-helpers/provider-runtime-contract.ts b/src/plugin-sdk/test-helpers/provider-runtime-contract.ts index e91f1bbc3ab..6d3e20c8257 100644 --- a/src/plugin-sdk/test-helpers/provider-runtime-contract.ts +++ b/src/plugin-sdk/test-helpers/provider-runtime-contract.ts @@ -9,7 +9,7 @@ import { createProviderUsageFetch, makeResponse } from "../test-env.js"; const CONTRACT_SETUP_TIMEOUT_MS = 300_000; -const OAUTH_MODULE_ID = "@mariozechner/pi-ai/oauth"; +const OAUTH_MODULE_ID = "@earendil-works/pi-ai/oauth"; const OPENAI_CODEX_PROVIDER_RUNTIME_MODULE_ID = "../../../extensions/openai/openai-codex-provider.runtime.js"; const refreshOpenAICodexTokenMock = vi.fn(); @@ -22,7 +22,7 @@ const getOAuthProvidersMock = vi.fn(() => [ function installProviderRuntimeContractMocks() { vi.doMock(OAUTH_MODULE_ID, async () => { const actual = - await vi.importActual(OAUTH_MODULE_ID); + await vi.importActual(OAUTH_MODULE_ID); return { ...actual, refreshOpenAICodexToken: refreshOpenAICodexTokenMock, diff --git a/src/plugin-sdk/test-helpers/stream-hooks.ts b/src/plugin-sdk/test-helpers/stream-hooks.ts index 1b8b7fe7048..096ad65a704 100644 --- a/src/plugin-sdk/test-helpers/stream-hooks.ts +++ b/src/plugin-sdk/test-helpers/stream-hooks.ts @@ -1,4 +1,4 @@ -import type { StreamFn } from "@mariozechner/pi-agent-core"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; export function createCapturedThinkingConfigStream() { let capturedPayload: Record | undefined; diff --git a/src/plugins/agent-tool-result-middleware-types.ts b/src/plugins/agent-tool-result-middleware-types.ts index 63e7a12710c..b355dc08606 100644 --- a/src/plugins/agent-tool-result-middleware-types.ts +++ b/src/plugins/agent-tool-result-middleware-types.ts @@ -1,4 +1,4 @@ -import type { AgentToolResult as PiAgentToolResult } from "@mariozechner/pi-agent-core"; +import type { AgentToolResult as PiAgentToolResult } from "@earendil-works/pi-agent-core"; export type OpenClawAgentToolResult = PiAgentToolResult; diff --git a/src/plugins/codex-app-server-extension-types.ts b/src/plugins/codex-app-server-extension-types.ts index 1e9b813554c..c9dd43677f0 100644 --- a/src/plugins/codex-app-server-extension-types.ts +++ b/src/plugins/codex-app-server-extension-types.ts @@ -1,4 +1,4 @@ -import type { AgentToolResult } from "@mariozechner/pi-agent-core"; +import type { AgentToolResult } from "@earendil-works/pi-agent-core"; export type CodexAppServerToolResultEvent = { threadId: string; diff --git a/src/plugins/contracts/tts-contract-suites.ts b/src/plugins/contracts/tts-contract-suites.ts index 20de6fbac47..b34459b0ce3 100644 --- a/src/plugins/contracts/tts-contract-suites.ts +++ b/src/plugins/contracts/tts-contract-suites.ts @@ -1,4 +1,4 @@ -import type { AssistantMessage } from "@mariozechner/pi-ai"; +import type { AssistantMessage } from "@earendil-works/pi-ai"; import type { OpenClawConfig } from "openclaw/plugin-sdk/config-contracts"; import { createEmptyPluginRegistry, @@ -23,7 +23,7 @@ let ttsRuntime: TtsRuntimeModule; let ttsRuntimePromise: Promise | null = null; let ttsRuntimeInitialized = false; let ttsCorePromise: Promise | null = null; -let completeSimple: typeof import("@mariozechner/pi-ai").completeSimple; +let completeSimple: typeof import("@earendil-works/pi-ai").completeSimple; let getApiKeyForModelMock: SummarizeTextDeps["getApiKeyForModel"]; let requireApiKeyMock: SummarizeTextDeps["requireApiKey"]; let resolveModelAsyncMock: SummarizeTextDeps["resolveModelAsync"]; @@ -70,7 +70,7 @@ async function withIsolatedSpeechProviderEnvAsync( return await withEnvAsync(isolatedSpeechProviderEnv(overrides), fn); } -vi.mock("@mariozechner/pi-ai", () => { +vi.mock("@earendil-works/pi-ai", () => { const getApiProvider = vi.fn(() => undefined); return { completeSimple: vi.fn(), @@ -84,7 +84,7 @@ vi.mock("@mariozechner/pi-ai", () => { }; }); -vi.mock("@mariozechner/pi-ai/oauth", () => { +vi.mock("@earendil-works/pi-ai/oauth", () => { return { getOAuthProviders: () => [], getOAuthApiKey: vi.fn(async () => null), @@ -496,7 +496,7 @@ function createResolvedSummarizationConfig(cfg: OpenClawConfig): ResolvedTtsConf async function setupSummarizationMocks() { ({ summarizeText: summarizeTextCore } = await loadTtsCore()); - ({ completeSimple } = await import("@mariozechner/pi-ai")); + ({ completeSimple } = await import("@earendil-works/pi-ai")); getApiKeyForModelMock = vi.fn() as SummarizeTextDeps["getApiKeyForModel"]; requireApiKeyMock = vi.fn() as SummarizeTextDeps["requireApiKey"]; resolveModelAsyncMock = vi.fn() as SummarizeTextDeps["resolveModelAsync"]; diff --git a/src/plugins/hook-types.ts b/src/plugins/hook-types.ts index 78ecb9861c1..f4a5bcc36fb 100644 --- a/src/plugins/hook-types.ts +++ b/src/plugins/hook-types.ts @@ -1,4 +1,4 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; import type { SourceReplyDeliveryMode } from "../auto-reply/get-reply-options.types.js"; import type { ReplyPayload } from "../auto-reply/reply-payload.js"; import type { diff --git a/src/plugins/hooks.sync-only.test.ts b/src/plugins/hooks.sync-only.test.ts index 7999a0d9b94..c5f5342318b 100644 --- a/src/plugins/hooks.sync-only.test.ts +++ b/src/plugins/hooks.sync-only.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 { createHookRunner, type HookRunnerLogger } from "./hooks.js"; import { createMockPluginRegistry } from "./hooks.test-helpers.js"; diff --git a/src/plugins/host-hook-turn-types.ts b/src/plugins/host-hook-turn-types.ts index 2dbf0d4bb80..0d250c3aaff 100644 --- a/src/plugins/host-hook-turn-types.ts +++ b/src/plugins/host-hook-turn-types.ts @@ -1,4 +1,4 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; import type { PluginJsonValue } from "./host-hook-json.js"; export type PluginNextTurnInjectionPlacement = "prepend_context" | "append_context"; diff --git a/src/plugins/pi-package-graph.test.ts b/src/plugins/pi-package-graph.test.ts index 8bd9675de48..79a9d73ae18 100644 --- a/src/plugins/pi-package-graph.test.ts +++ b/src/plugins/pi-package-graph.test.ts @@ -12,10 +12,10 @@ type PnpmWorkspaceConfig = { }; const PI_PACKAGE_NAMES = [ - "@mariozechner/pi-agent-core", - "@mariozechner/pi-ai", - "@mariozechner/pi-coding-agent", - "@mariozechner/pi-tui", + "@earendil-works/pi-agent-core", + "@earendil-works/pi-ai", + "@earendil-works/pi-coding-agent", + "@earendil-works/pi-tui", ] as const; function readRootManifest(): RootPackageManifest { diff --git a/src/plugins/provider-auth-helpers.ts b/src/plugins/provider-auth-helpers.ts index ce97bf4162a..802af53927c 100644 --- a/src/plugins/provider-auth-helpers.ts +++ b/src/plugins/provider-auth-helpers.ts @@ -1,6 +1,6 @@ import fs from "node:fs"; import path from "node:path"; -import type { OAuthCredentials } from "@mariozechner/pi-ai"; +import type { OAuthCredentials } from "@earendil-works/pi-ai"; import { resolveDefaultAgentDir } from "../agents/agent-scope-config.js"; import { buildAuthProfileId } from "../agents/auth-profiles/identity.js"; import { upsertAuthProfile } from "../agents/auth-profiles/profiles.js"; diff --git a/src/plugins/provider-model-compat.ts b/src/plugins/provider-model-compat.ts index 7f4e5a52c40..1480ad5a4a7 100644 --- a/src/plugins/provider-model-compat.ts +++ b/src/plugins/provider-model-compat.ts @@ -1,4 +1,4 @@ -import type { Api, Model } from "@mariozechner/pi-ai"; +import type { Api, Model } from "@earendil-works/pi-ai"; import { detectOpenAICompletionsCompat } from "../agents/openai-completions-compat.js"; import type { ModelCompatConfig } from "../config/types.models.js"; diff --git a/src/plugins/provider-model-helpers.test.ts b/src/plugins/provider-model-helpers.test.ts index b96d23f17b1..5a34fb4dd73 100644 --- a/src/plugins/provider-model-helpers.test.ts +++ b/src/plugins/provider-model-helpers.test.ts @@ -1,4 +1,4 @@ -import type { ModelRegistry } from "@mariozechner/pi-coding-agent"; +import type { ModelRegistry } from "@earendil-works/pi-coding-agent"; import { describe, expect, it } from "vitest"; import { cloneFirstTemplateModel, matchesExactOrPrefix } from "./provider-model-helpers.js"; import type { ProviderRuntimeModel } from "./provider-runtime-model.types.js"; diff --git a/src/plugins/provider-openai-codex-oauth.test.ts b/src/plugins/provider-openai-codex-oauth.test.ts index 4ee5737e0fe..7a7af1b25f4 100644 --- a/src/plugins/provider-openai-codex-oauth.test.ts +++ b/src/plugins/provider-openai-codex-oauth.test.ts @@ -8,9 +8,9 @@ const mocks = vi.hoisted(() => ({ formatOpenAIOAuthTlsPreflightFix: vi.fn(), })); -vi.mock("@mariozechner/pi-ai/oauth", async () => { - const actual = await vi.importActual( - "@mariozechner/pi-ai/oauth", +vi.mock("@earendil-works/pi-ai/oauth", async () => { + const actual = await vi.importActual( + "@earendil-works/pi-ai/oauth", ); return { ...actual, diff --git a/src/plugins/provider-openai-codex-oauth.ts b/src/plugins/provider-openai-codex-oauth.ts index dd286dbbbda..b41f3f05d75 100644 --- a/src/plugins/provider-openai-codex-oauth.ts +++ b/src/plugins/provider-openai-codex-oauth.ts @@ -1,4 +1,4 @@ -import { loginOpenAICodex, type OAuthCredentials } from "@mariozechner/pi-ai/oauth"; +import { loginOpenAICodex, type OAuthCredentials } from "@earendil-works/pi-ai/oauth"; import { formatErrorMessage } from "../infra/errors.js"; import { ensureGlobalUndiciEnvProxyDispatcher } from "../infra/net/undici-global-dispatcher.js"; import type { RuntimeEnv } from "../runtime.js"; diff --git a/src/plugins/provider-replay-helpers.ts b/src/plugins/provider-replay-helpers.ts index c4edd59988c..eec976e185d 100644 --- a/src/plugins/provider-replay-helpers.ts +++ b/src/plugins/provider-replay-helpers.ts @@ -1,4 +1,4 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; import { isGemma4ModelId } from "../shared/google-models.js"; import { sanitizeGoogleAssistantFirstOrdering } from "../shared/google-turn-ordering.js"; import { normalizeLowercaseStringOrEmpty } from "../shared/string-coerce.js"; diff --git a/src/plugins/provider-runtime-model.types.ts b/src/plugins/provider-runtime-model.types.ts index d5364097d34..a2e267dbbc9 100644 --- a/src/plugins/provider-runtime-model.types.ts +++ b/src/plugins/provider-runtime-model.types.ts @@ -1,4 +1,4 @@ -import type { Api, Model } from "@mariozechner/pi-ai"; +import type { Api, Model } from "@earendil-works/pi-ai"; import type { ModelCompatConfig } from "../config/types.models.js"; /** diff --git a/src/plugins/provider-runtime.test.ts b/src/plugins/provider-runtime.test.ts index 114c333ca99..11a84e6f8d6 100644 --- a/src/plugins/provider-runtime.test.ts +++ b/src/plugins/provider-runtime.test.ts @@ -1,4 +1,4 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; import type { ModelProviderConfig, OpenClawConfig } from "../config/types.js"; import type { ProviderRuntimeModel } from "./provider-runtime-model.types.js"; diff --git a/src/plugins/runtime/runtime-llm.runtime.ts b/src/plugins/runtime/runtime-llm.runtime.ts index 8567058d4d1..421d5c3fbe4 100644 --- a/src/plugins/runtime/runtime-llm.runtime.ts +++ b/src/plugins/runtime/runtime-llm.runtime.ts @@ -1,4 +1,4 @@ -import type { Api, Message } from "@mariozechner/pi-ai"; +import type { Api, Message } from "@earendil-works/pi-ai"; import { normalizeModelRef } from "../../agents/model-selection.js"; import type { NormalizedUsage, UsageLike } from "../../agents/usage.js"; import { normalizeUsage } from "../../agents/usage.js"; diff --git a/src/plugins/runtime/runtime-model-auth.runtime.ts b/src/plugins/runtime/runtime-model-auth.runtime.ts index 5c37bff3dd7..f5f774fcf21 100644 --- a/src/plugins/runtime/runtime-model-auth.runtime.ts +++ b/src/plugins/runtime/runtime-model-auth.runtime.ts @@ -1,4 +1,4 @@ -import type { Api, Model } from "@mariozechner/pi-ai"; +import type { Api, Model } from "@earendil-works/pi-ai"; import { getApiKeyForModel as resolveModelApiKey, resolveApiKeyForProvider as resolveProviderApiKey, diff --git a/src/plugins/runtime/runtime-web-channel-plugin.ts b/src/plugins/runtime/runtime-web-channel-plugin.ts index 843ee9b0e1b..f4fd644d881 100644 --- a/src/plugins/runtime/runtime-web-channel-plugin.ts +++ b/src/plugins/runtime/runtime-web-channel-plugin.ts @@ -1,4 +1,4 @@ -import type { AgentToolResult } from "@mariozechner/pi-agent-core"; +import type { AgentToolResult } from "@earendil-works/pi-agent-core"; import type { ChannelAgentTool } from "../../channels/plugins/types.core.js"; import type { OpenClawConfig } from "../../config/types.openclaw.js"; import { diff --git a/src/plugins/runtime/types-core.ts b/src/plugins/runtime/types-core.ts index 7b36f218750..5b198d840c6 100644 --- a/src/plugins/runtime/types-core.ts +++ b/src/plugins/runtime/types-core.ts @@ -317,13 +317,13 @@ export type PluginRuntimeCore = { modelAuth: { /** Resolve auth for a model. Only provider/model, optional cfg, and workspaceDir are used. */ getApiKeyForModel: (params: { - model: import("@mariozechner/pi-ai").Model; + model: import("@earendil-works/pi-ai").Model; cfg?: import("../../config/types.openclaw.js").OpenClawConfig; workspaceDir?: string; }) => Promise; /** Resolve request-ready auth for a model, including provider runtime exchanges. */ getRuntimeAuthForModel: (params: { - model: import("@mariozechner/pi-ai").Model; + model: import("@earendil-works/pi-ai").Model; cfg?: import("../../config/types.openclaw.js").OpenClawConfig; workspaceDir?: string; }) => Promise; diff --git a/src/plugins/types.ts b/src/plugins/types.ts index 383054c19d2..35966cba50e 100644 --- a/src/plugins/types.ts +++ b/src/plugins/types.ts @@ -1,8 +1,8 @@ import type { IncomingMessage, ServerResponse } from "node:http"; import type { Duplex } from "node:stream"; -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import type { StreamFn } from "@mariozechner/pi-agent-core"; -import type { ModelRegistry } from "@mariozechner/pi-coding-agent"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import type { StreamFn } from "@earendil-works/pi-agent-core"; +import type { ModelRegistry } from "@earendil-works/pi-coding-agent"; import type { Command } from "commander"; import type { ApiKeyCredential, diff --git a/src/sessions/input-provenance.ts b/src/sessions/input-provenance.ts index dce11826d57..31ba9db0f27 100644 --- a/src/sessions/input-provenance.ts +++ b/src/sessions/input-provenance.ts @@ -1,4 +1,4 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; import { normalizeOptionalString } from "../shared/string-coerce.js"; export const INPUT_PROVENANCE_KIND_VALUES = [ diff --git a/src/shared/google-turn-ordering.ts b/src/shared/google-turn-ordering.ts index a442d607548..db6192f2bfa 100644 --- a/src/shared/google-turn-ordering.ts +++ b/src/shared/google-turn-ordering.ts @@ -1,4 +1,4 @@ -import type { AgentMessage } from "@mariozechner/pi-agent-core"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; const GOOGLE_TURN_ORDER_BOOTSTRAP_TEXT = "(session bootstrap)"; diff --git a/src/trajectory/export.test.ts b/src/trajectory/export.test.ts index 712f0c92396..dc6ba570590 100644 --- a/src/trajectory/export.test.ts +++ b/src/trajectory/export.test.ts @@ -1,7 +1,7 @@ import fs from "node:fs"; import os from "node:os"; import path from "node:path"; -import type { Message, Usage } from "@mariozechner/pi-ai"; +import type { Message, Usage } from "@earendil-works/pi-ai"; import { afterAll, describe, expect, it } from "vitest"; import { exportTrajectoryBundle, resolveDefaultTrajectoryExportDir } from "./export.js"; import { TRAJECTORY_RUNTIME_FILE_MAX_BYTES, resolveTrajectoryPointerFilePath } from "./paths.js"; diff --git a/src/trajectory/export.ts b/src/trajectory/export.ts index 441c6a53e33..fbbd7e1b6cc 100644 --- a/src/trajectory/export.ts +++ b/src/trajectory/export.ts @@ -1,7 +1,7 @@ import fsp from "node:fs/promises"; import path from "node:path"; -import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import type { FileEntry, SessionEntry, SessionHeader } from "@mariozechner/pi-coding-agent"; +import type { AgentMessage } from "@earendil-works/pi-agent-core"; +import type { FileEntry, SessionEntry, SessionHeader } from "@earendil-works/pi-coding-agent"; import { sanitizeDiagnosticPayload } from "../agents/payload-redaction.js"; import { resolveStateDir } from "../config/paths.js"; import { diff --git a/src/tts/tts-core.ts b/src/tts/tts-core.ts index 405cfd4e230..5a107c99cab 100644 --- a/src/tts/tts-core.ts +++ b/src/tts/tts-core.ts @@ -1,4 +1,4 @@ -import { completeSimple, type TextContent } from "@mariozechner/pi-ai"; +import { completeSimple, type TextContent } from "@earendil-works/pi-ai"; import { getApiKeyForModel, requireApiKey } from "../agents/model-auth.js"; import { buildModelAliasIndex, diff --git a/src/tui/commands.ts b/src/tui/commands.ts index 2319c2b86a5..22e6a279e9d 100644 --- a/src/tui/commands.ts +++ b/src/tui/commands.ts @@ -1,4 +1,4 @@ -import type { SlashCommand } from "@mariozechner/pi-tui"; +import type { SlashCommand } from "@earendil-works/pi-tui"; import { listChatCommands, listChatCommandsForConfig } from "../auto-reply/commands-registry.js"; import { formatThinkingLevels, listThinkingLevelLabels } from "../auto-reply/thinking.js"; import type { OpenClawConfig } from "../config/types.js"; diff --git a/src/tui/components/assistant-message.ts b/src/tui/components/assistant-message.ts index 99e1e928043..a8b442a1d5c 100644 --- a/src/tui/components/assistant-message.ts +++ b/src/tui/components/assistant-message.ts @@ -1,4 +1,4 @@ -import { Container, Spacer } from "@mariozechner/pi-tui"; +import { Container, Spacer } from "@earendil-works/pi-tui"; import { markdownTheme, theme } from "../theme/theme.js"; import { HyperlinkMarkdown } from "./hyperlink-markdown.js"; diff --git a/src/tui/components/btw-inline-message.ts b/src/tui/components/btw-inline-message.ts index 7aa813a457e..d0bcc67616c 100644 --- a/src/tui/components/btw-inline-message.ts +++ b/src/tui/components/btw-inline-message.ts @@ -1,4 +1,4 @@ -import { Container, Spacer, Text } from "@mariozechner/pi-tui"; +import { Container, Spacer, Text } from "@earendil-works/pi-tui"; import { theme } from "../theme/theme.js"; import { AssistantMessageComponent } from "./assistant-message.js"; diff --git a/src/tui/components/chat-log.ts b/src/tui/components/chat-log.ts index cf5711ad8c6..9df80af2e56 100644 --- a/src/tui/components/chat-log.ts +++ b/src/tui/components/chat-log.ts @@ -1,5 +1,5 @@ -import type { Component } from "@mariozechner/pi-tui"; -import { Container, Spacer, Text } from "@mariozechner/pi-tui"; +import type { Component } from "@earendil-works/pi-tui"; +import { Container, Spacer, Text } from "@earendil-works/pi-tui"; import { theme } from "../theme/theme.js"; import { AssistantMessageComponent } from "./assistant-message.js"; import { BtwInlineMessage } from "./btw-inline-message.js"; diff --git a/src/tui/components/custom-editor.test.ts b/src/tui/components/custom-editor.test.ts index 31728eb8279..b47ae20baf0 100644 --- a/src/tui/components/custom-editor.test.ts +++ b/src/tui/components/custom-editor.test.ts @@ -1,4 +1,4 @@ -import { TUI } from "@mariozechner/pi-tui"; +import { TUI } from "@earendil-works/pi-tui"; import { afterEach, describe, expect, it, vi } from "vitest"; import { editorTheme } from "../theme/theme.js"; import { CustomEditor } from "./custom-editor.js"; diff --git a/src/tui/components/custom-editor.ts b/src/tui/components/custom-editor.ts index a1d5f51b0ec..5e1bac65aab 100644 --- a/src/tui/components/custom-editor.ts +++ b/src/tui/components/custom-editor.ts @@ -1,4 +1,4 @@ -import { Editor, Key, matchesKey } from "@mariozechner/pi-tui"; +import { Editor, Key, matchesKey } from "@earendil-works/pi-tui"; export class CustomEditor extends Editor { onEscape?: () => void; diff --git a/src/tui/components/filterable-select-list.ts b/src/tui/components/filterable-select-list.ts index ca39098e790..2815aecc03a 100644 --- a/src/tui/components/filterable-select-list.ts +++ b/src/tui/components/filterable-select-list.ts @@ -1,11 +1,11 @@ -import type { Component } from "@mariozechner/pi-tui"; +import type { Component } from "@earendil-works/pi-tui"; import { Input, matchesKey, type SelectItem, SelectList, type SelectListTheme, -} from "@mariozechner/pi-tui"; +} from "@earendil-works/pi-tui"; import chalk from "chalk"; import { normalizeLowercaseStringOrEmpty } from "../../shared/string-coerce.js"; import { fuzzyFilterLower, prepareSearchItems } from "./fuzzy-filter.js"; diff --git a/src/tui/components/hyperlink-markdown.ts b/src/tui/components/hyperlink-markdown.ts index 6eb0c9fa58d..0f482311667 100644 --- a/src/tui/components/hyperlink-markdown.ts +++ b/src/tui/components/hyperlink-markdown.ts @@ -1,5 +1,5 @@ -import type { Component, DefaultTextStyle, MarkdownTheme } from "@mariozechner/pi-tui"; -import { Markdown } from "@mariozechner/pi-tui"; +import type { Component, DefaultTextStyle, MarkdownTheme } from "@earendil-works/pi-tui"; +import { Markdown } from "@earendil-works/pi-tui"; import { addOsc8Hyperlinks, extractUrls } from "../osc8-hyperlinks.js"; /** diff --git a/src/tui/components/markdown-message.ts b/src/tui/components/markdown-message.ts index 12dc935a6ad..38e21572fb7 100644 --- a/src/tui/components/markdown-message.ts +++ b/src/tui/components/markdown-message.ts @@ -1,4 +1,4 @@ -import { Container, Spacer } from "@mariozechner/pi-tui"; +import { Container, Spacer } from "@earendil-works/pi-tui"; import { markdownTheme } from "../theme/theme.js"; import { HyperlinkMarkdown } from "./hyperlink-markdown.js"; diff --git a/src/tui/components/searchable-select-list.ts b/src/tui/components/searchable-select-list.ts index 678efadb318..0c2ecb61466 100644 --- a/src/tui/components/searchable-select-list.ts +++ b/src/tui/components/searchable-select-list.ts @@ -6,7 +6,7 @@ import { type SelectItem, type SelectListTheme, truncateToWidth, -} from "@mariozechner/pi-tui"; +} from "@earendil-works/pi-tui"; import { normalizeLowercaseStringOrEmpty } from "../../shared/string-coerce.js"; import { stripAnsi, visibleWidth } from "../../terminal/ansi.js"; import { findWordBoundaryIndex, fuzzyFilterLower } from "./fuzzy-filter.js"; diff --git a/src/tui/components/selectors.ts b/src/tui/components/selectors.ts index d64430a341b..9b523778ce7 100644 --- a/src/tui/components/selectors.ts +++ b/src/tui/components/selectors.ts @@ -1,4 +1,4 @@ -import { type SelectItem, type SettingItem, SettingsList } from "@mariozechner/pi-tui"; +import { type SelectItem, type SettingItem, SettingsList } from "@earendil-works/pi-tui"; import { filterableSelectListTheme, searchableSelectListTheme, diff --git a/src/tui/components/tool-execution.ts b/src/tui/components/tool-execution.ts index afa86d0089b..a764e1016ed 100644 --- a/src/tui/components/tool-execution.ts +++ b/src/tui/components/tool-execution.ts @@ -1,4 +1,4 @@ -import { Box, Container, Markdown, Spacer, Text } from "@mariozechner/pi-tui"; +import { Box, Container, Markdown, Spacer, Text } from "@earendil-works/pi-tui"; import { formatToolDetail, resolveToolDisplay } from "../../agents/tool-display.js"; import { markdownTheme, theme } from "../theme/theme.js"; import { sanitizeRenderableText } from "../tui-formatters.js"; diff --git a/src/tui/theme/theme.ts b/src/tui/theme/theme.ts index 31b72506810..b5d71ab0d94 100644 --- a/src/tui/theme/theme.ts +++ b/src/tui/theme/theme.ts @@ -3,7 +3,7 @@ import type { MarkdownTheme, SelectListTheme, SettingsListTheme, -} from "@mariozechner/pi-tui"; +} from "@earendil-works/pi-tui"; import chalk from "chalk"; import { normalizeOptionalLowercaseString } from "../../shared/string-coerce.js"; import type { SearchableSelectListTheme } from "../components/searchable-select-list.js"; diff --git a/src/tui/tui-command-handlers.ts b/src/tui/tui-command-handlers.ts index 98d100ffe82..5a9f541d198 100644 --- a/src/tui/tui-command-handlers.ts +++ b/src/tui/tui-command-handlers.ts @@ -1,5 +1,5 @@ import { randomUUID } from "node:crypto"; -import type { Component, SelectItem, TUI } from "@mariozechner/pi-tui"; +import type { Component, SelectItem, TUI } from "@earendil-works/pi-tui"; import { modelKey } from "../agents/model-ref-shared.js"; import { normalizeGroupActivation } from "../auto-reply/group-activation.js"; import { diff --git a/src/tui/tui-local-shell.ts b/src/tui/tui-local-shell.ts index e9bea276d34..41b4c7125e4 100644 --- a/src/tui/tui-local-shell.ts +++ b/src/tui/tui-local-shell.ts @@ -1,5 +1,5 @@ import { spawn } from "node:child_process"; -import type { Component, SelectItem } from "@mariozechner/pi-tui"; +import type { Component, SelectItem } from "@earendil-works/pi-tui"; import { createSearchableSelectList } from "./components/selectors.js"; type LocalShellDeps = { diff --git a/src/tui/tui-overlays.test.ts b/src/tui/tui-overlays.test.ts index 070eb0a847d..b2bcbd9dfd7 100644 --- a/src/tui/tui-overlays.test.ts +++ b/src/tui/tui-overlays.test.ts @@ -1,4 +1,4 @@ -import type { Component } from "@mariozechner/pi-tui"; +import type { Component } from "@earendil-works/pi-tui"; import { describe, expect, it, vi } from "vitest"; import { createOverlayHandlers } from "./tui-overlays.js"; diff --git a/src/tui/tui-overlays.ts b/src/tui/tui-overlays.ts index 51ba45a980d..fc9fa42849e 100644 --- a/src/tui/tui-overlays.ts +++ b/src/tui/tui-overlays.ts @@ -1,4 +1,4 @@ -import type { Component, TUI } from "@mariozechner/pi-tui"; +import type { Component, TUI } from "@earendil-works/pi-tui"; type OverlayHost = Pick; diff --git a/src/tui/tui-session-actions.test.ts b/src/tui/tui-session-actions.test.ts index 9316d530f04..f2f78745dd5 100644 --- a/src/tui/tui-session-actions.test.ts +++ b/src/tui/tui-session-actions.test.ts @@ -43,7 +43,7 @@ describe("tui session actions", () => { clearAll: vi.fn(), } as unknown as import("./components/chat-log.js").ChatLog, btw: createBtwPresenter(), - tui: { requestRender: vi.fn() } as unknown as import("@mariozechner/pi-tui").TUI, + tui: { requestRender: vi.fn() } as unknown as import("@earendil-works/pi-tui").TUI, opts: {}, state: createBaseState(), agentNames: new Map(), @@ -86,7 +86,7 @@ describe("tui session actions", () => { client: { listSessions } as unknown as TuiBackend, chatLog: { addSystem: vi.fn() } as unknown as import("./components/chat-log.js").ChatLog, btw: createBtwPresenter(), - tui: { requestRender } as unknown as import("@mariozechner/pi-tui").TUI, + tui: { requestRender } as unknown as import("@earendil-works/pi-tui").TUI, state, updateFooter, updateAutocompleteProvider, @@ -291,7 +291,7 @@ describe("tui session actions", () => { client: { listSessions } as unknown as TuiBackend, chatLog: { addSystem: vi.fn() } as unknown as import("./components/chat-log.js").ChatLog, btw: createBtwPresenter(), - tui: { requestRender: vi.fn() } as unknown as import("@mariozechner/pi-tui").TUI, + tui: { requestRender: vi.fn() } as unknown as import("@earendil-works/pi-tui").TUI, opts: {}, state, agentNames: new Map(), @@ -362,7 +362,7 @@ describe("tui session actions", () => { clearAll: vi.fn(), } as unknown as import("./components/chat-log.js").ChatLog, btw: createBtwPresenter(), - tui: { requestRender: vi.fn() } as unknown as import("@mariozechner/pi-tui").TUI, + tui: { requestRender: vi.fn() } as unknown as import("@earendil-works/pi-tui").TUI, opts: {}, state, agentNames: new Map(), diff --git a/src/tui/tui-session-actions.ts b/src/tui/tui-session-actions.ts index 9a853292ebe..8d65a146a84 100644 --- a/src/tui/tui-session-actions.ts +++ b/src/tui/tui-session-actions.ts @@ -1,4 +1,4 @@ -import type { TUI } from "@mariozechner/pi-tui"; +import type { TUI } from "@earendil-works/pi-tui"; import { resolveSessionInfoModelSelection } from "../agents/model-selection-display.js"; import type { SessionsPatchResult } from "../gateway/protocol/index.js"; import { diff --git a/src/tui/tui.ts b/src/tui/tui.ts index 6a2ab017a58..ccfceb4b1be 100644 --- a/src/tui/tui.ts +++ b/src/tui/tui.ts @@ -11,7 +11,7 @@ import { ProcessTerminal, Text, TUI, -} from "@mariozechner/pi-tui"; +} from "@earendil-works/pi-tui"; import { resolveAgentIdByWorkspacePath, resolveDefaultAgentId } from "../agents/agent-scope.js"; import { getRuntimeConfig, type OpenClawConfig } from "../config/config.js"; import { registerUncaughtExceptionHandler } from "../infra/unhandled-rejections.js"; diff --git a/src/types/pi-agent-core.d.ts b/src/types/pi-agent-core.d.ts index 12ed4ee5817..5f0f90c6ee1 100644 --- a/src/types/pi-agent-core.d.ts +++ b/src/types/pi-agent-core.d.ts @@ -1,6 +1,6 @@ -import "@mariozechner/pi-agent-core"; +import "@earendil-works/pi-agent-core"; -declare module "@mariozechner/pi-agent-core" { +declare module "@earendil-works/pi-agent-core" { // OpenClaw persists compaction markers alongside normal agent history. interface CustomAgentMessages { compactionSummary: { diff --git a/src/types/pi-coding-agent.d.ts b/src/types/pi-coding-agent.d.ts index dd411117c46..008ae2f91f1 100644 --- a/src/types/pi-coding-agent.d.ts +++ b/src/types/pi-coding-agent.d.ts @@ -1,6 +1,6 @@ export type OpenClawPiCodingAgentSkillSourceAugmentation = never; -declare module "@mariozechner/pi-coding-agent" { +declare module "@earendil-works/pi-coding-agent" { interface Skill { // OpenClaw relies on the source identifier returned by pi skill loaders. source: string; diff --git a/test/helpers/agents/happy-path-prompt-snapshots.ts b/test/helpers/agents/happy-path-prompt-snapshots.ts index 4c736cfeb66..f8bc8b7c513 100644 --- a/test/helpers/agents/happy-path-prompt-snapshots.ts +++ b/test/helpers/agents/happy-path-prompt-snapshots.ts @@ -1,6 +1,6 @@ import fs from "node:fs"; import path from "node:path"; -import type { Api, Model } from "@mariozechner/pi-ai"; +import type { Api, Model } from "@earendil-works/pi-ai"; import { resolveHeartbeatPromptForResponseTool } from "../../../src/auto-reply/heartbeat.js"; import { buildDirectChatContext, diff --git a/test/scripts/blacksmith-testbox-runner.test.ts b/test/scripts/blacksmith-testbox-runner.test.ts deleted file mode 100644 index c995d910d9d..00000000000 --- a/test/scripts/blacksmith-testbox-runner.test.ts +++ /dev/null @@ -1,160 +0,0 @@ -import { EventEmitter } from "node:events"; -import fs from "node:fs"; -import os from "node:os"; -import path from "node:path"; -import { afterEach, describe, expect, it } from "vitest"; -import { - buildBlacksmithRunArgs, - resolveTestboxSyncTimeoutMs, - runBlacksmithTestboxRunner, - splitRunnerArgs, -} from "../../scripts/blacksmith-testbox-runner.mjs"; - -describe("blacksmith testbox runner", () => { - const tempDirs: string[] = []; - - afterEach(() => { - for (const dir of tempDirs.splice(0)) { - fs.rmSync(dir, { recursive: true, force: true }); - } - }); - - it("splits runner args from the remote command", () => { - expect( - splitRunnerArgs(["--id", "tbx_abc123", "--", "OPENCLAW_TESTBOX=1", "pnpm", "check:changed"]), - ).toEqual({ - runnerArgs: ["--id", "tbx_abc123"], - commandArgs: ["OPENCLAW_TESTBOX=1", "pnpm", "check:changed"], - }); - }); - - it("builds blacksmith run arguments", () => { - expect( - buildBlacksmithRunArgs({ - commandArgs: ["OPENCLAW_TESTBOX=1", "pnpm", "check:changed"], - testboxId: "tbx_abc123", - }), - ).toEqual(["testbox", "run", "--id", "tbx_abc123", "OPENCLAW_TESTBOX=1 pnpm check:changed"]); - }); - - it("refuses to run a remote-visible id without a local private key", async () => { - let spawned = false; - const stderr = { write: (value: string) => value.length }; - const code = await runBlacksmithTestboxRunner({ - argv: ["--id", "tbx_01kqap50t9fqggzw1akg5dtmmq", "--", "pnpm", "check:changed"], - env: { OPENCLAW_BLACKSMITH_TESTBOX_STATE_DIR: "/state/testboxes" }, - spawn: () => { - spawned = true; - return { status: 0 }; - }, - stderr, - }); - - expect(code).toBe(2); - expect(spawned).toBe(false); - }); - - it("refuses to run a keyed id that was not claimed by this checkout", async () => { - const stateDir = fs.mkdtempSync(path.join(os.tmpdir(), "openclaw-testbox-runner-")); - tempDirs.push(stateDir); - const testboxDir = path.join(stateDir, "tbx_01kqap50t9fqggzw1akg5dtmmq"); - fs.mkdirSync(testboxDir, { recursive: true }); - fs.writeFileSync(path.join(testboxDir, "id_ed25519"), "test-key\n"); - - let spawned = false; - let stderrText = ""; - const code = await runBlacksmithTestboxRunner({ - argv: ["--id", "tbx_01kqap50t9fqggzw1akg5dtmmq", "--", "pnpm", "check:changed"], - env: { ...process.env, OPENCLAW_BLACKSMITH_TESTBOX_STATE_DIR: stateDir }, - spawn: () => { - spawned = true; - return { status: 0 }; - }, - stderr: { write: (value: string) => (stderrText += value) }, - }); - - expect(code).toBe(2); - expect(spawned).toBe(false); - expect(stderrText).toContain("OpenClaw Testbox claim missing"); - }); - - it("claims a keyed id without spawning when no remote command is supplied", async () => { - const stateDir = fs.mkdtempSync(path.join(os.tmpdir(), "openclaw-testbox-runner-")); - tempDirs.push(stateDir); - const testboxDir = path.join(stateDir, "tbx_01kqap50t9fqggzw1akg5dtmmq"); - const claimPath = path.join(testboxDir, "openclaw-runner.json"); - fs.mkdirSync(testboxDir, { recursive: true }); - fs.writeFileSync(path.join(testboxDir, "id_ed25519"), "test-key\n"); - - let spawned = false; - let stdoutText = ""; - const code = await runBlacksmithTestboxRunner({ - argv: ["--claim", "--id", "tbx_01kqap50t9fqggzw1akg5dtmmq"], - env: { ...process.env, OPENCLAW_BLACKSMITH_TESTBOX_STATE_DIR: stateDir }, - spawn: () => { - spawned = true; - return { status: 0 }; - }, - stdout: { write: (value: string) => (stdoutText += value) }, - }); - - expect(code).toBe(0); - expect(spawned).toBe(false); - expect(stdoutText).toContain("OpenClaw Testbox claim written"); - expect(JSON.parse(fs.readFileSync(claimPath, "utf8")).repoRoot).toBe(process.cwd()); - }); - - it("defaults the Testbox sync timeout and accepts disable override", () => { - expect(resolveTestboxSyncTimeoutMs({})).toBe(300000); - expect(resolveTestboxSyncTimeoutMs({ OPENCLAW_TESTBOX_SYNC_TIMEOUT_MS: "0" })).toBe(0); - expect(resolveTestboxSyncTimeoutMs({ OPENCLAW_TESTBOX_SYNC_TIMEOUT_MS: "2500" })).toBe(2500); - }); - - it("terminates a Testbox run that stalls in sync", async () => { - const stateDir = fs.mkdtempSync(path.join(os.tmpdir(), "openclaw-testbox-runner-")); - tempDirs.push(stateDir); - const testboxId = "tbx_01kqap50t9fqggzw1akg5dtmmq"; - const testboxDir = path.join(stateDir, testboxId); - fs.mkdirSync(testboxDir, { recursive: true }); - fs.writeFileSync(path.join(testboxDir, "id_ed25519"), "test-key\n"); - await runBlacksmithTestboxRunner({ - argv: ["--claim", "--id", testboxId], - env: { ...process.env, OPENCLAW_BLACKSMITH_TESTBOX_STATE_DIR: stateDir }, - stdout: { write: () => 0 }, - }); - - let killed = false; - let stderrText = ""; - const fakeSpawn = () => { - const child = new EventEmitter() as EventEmitter & { - stdout: EventEmitter; - stderr: EventEmitter; - kill: () => void; - }; - child.stdout = new EventEmitter(); - child.stderr = new EventEmitter(); - child.kill = () => { - killed = true; - child.emit("close", 143); - }; - queueMicrotask(() => child.stdout.emit("data", "Syncing... (still in progress)")); - return child; - }; - - const code = await runBlacksmithTestboxRunner({ - argv: ["--id", testboxId, "--", "pnpm", "check:changed"], - env: { - ...process.env, - OPENCLAW_BLACKSMITH_TESTBOX_STATE_DIR: stateDir, - OPENCLAW_TESTBOX_SYNC_TIMEOUT_MS: "1", - }, - spawn: fakeSpawn, - stderr: { write: (value: string) => (stderrText += value) }, - stdout: { write: () => 0 }, - }); - - expect(code).toBe(124); - expect(killed).toBe(true); - expect(stderrText).toContain("Blacksmith Testbox sync produced no post-sync output"); - }); -}); diff --git a/test/scripts/blacksmith-testbox-state.test.ts b/test/scripts/blacksmith-testbox-state.test.ts deleted file mode 100644 index f536ab749e5..00000000000 --- a/test/scripts/blacksmith-testbox-state.test.ts +++ /dev/null @@ -1,119 +0,0 @@ -import { describe, expect, it } from "vitest"; -import { - evaluateLocalTestboxKey, - evaluateOpenClawTestboxClaim, - parseTestboxIdArg, - resolveTestboxId, - writeOpenClawTestboxClaim, -} from "../../scripts/blacksmith-testbox-state.mjs"; - -describe("blacksmith testbox state", () => { - it("parses Testbox ids from args and env", () => { - expect(parseTestboxIdArg(["--id", "tbx_abc123"])).toBe("tbx_abc123"); - expect(parseTestboxIdArg(["--testbox-id=tbx_def456"])).toBe("tbx_def456"); - expect(resolveTestboxId({ argv: [], env: { OPENCLAW_TESTBOX_ID: "tbx_env123" } })).toBe( - "tbx_env123", - ); - }); - - it("fails when a remote-visible Testbox id has no local private key", () => { - const result = evaluateLocalTestboxKey({ - env: { OPENCLAW_BLACKSMITH_TESTBOX_STATE_DIR: "/state/testboxes" }, - exists: () => false, - testboxId: "tbx_01kqap50t9fqggzw1akg5dtmmq", - }); - - expect(result.ok).toBe(false); - expect(result.keyPath).toBe("/state/testboxes/tbx_01kqap50t9fqggzw1akg5dtmmq/id_ed25519"); - expect(result.problems[0]).toContain("local Testbox SSH key missing"); - }); - - it("accepts a Testbox id with a local private key", () => { - const result = evaluateLocalTestboxKey({ - env: { OPENCLAW_BLACKSMITH_TESTBOX_STATE_DIR: "/state/testboxes" }, - exists: (file) => file.endsWith("/tbx_01kqap50t9fqggzw1akg5dtmmq/id_ed25519"), - testboxId: "tbx_01kqap50t9fqggzw1akg5dtmmq", - }); - - expect(result.ok).toBe(true); - expect(result.checked).toBe(true); - }); - - it("fails when a keyed Testbox id has no OpenClaw claim", () => { - const result = evaluateOpenClawTestboxClaim({ - cwd: "/repo", - env: { OPENCLAW_BLACKSMITH_TESTBOX_STATE_DIR: "/state/testboxes" }, - exists: () => false, - testboxId: "tbx_01kqap50t9fqggzw1akg5dtmmq", - }); - - expect(result.ok).toBe(false); - expect(result.claimPath).toBe( - "/state/testboxes/tbx_01kqap50t9fqggzw1akg5dtmmq/openclaw-runner.json", - ); - expect(result.problems[0]).toContain("OpenClaw Testbox claim missing"); - }); - - it("fails when an OpenClaw claim belongs to a different checkout", () => { - const result = evaluateOpenClawTestboxClaim({ - cwd: "/repo/current", - env: { OPENCLAW_BLACKSMITH_TESTBOX_STATE_DIR: "/state/testboxes" }, - exists: () => true, - now: () => new Date("2026-04-29T12:00:00.000Z"), - readFile: () => JSON.stringify({ repoRoot: "/repo/other" }), - testboxId: "tbx_01kqap50t9fqggzw1akg5dtmmq", - }); - - expect(result.ok).toBe(false); - expect(result.problems[0]).toContain("claim repo mismatch"); - }); - - it("fails when an OpenClaw claim is stale after a crash or long pause", () => { - const result = evaluateOpenClawTestboxClaim({ - cwd: "/repo/current", - env: { - OPENCLAW_BLACKSMITH_TESTBOX_STATE_DIR: "/state/testboxes", - OPENCLAW_TESTBOX_CLAIM_TTL_MINUTES: "90", - }, - exists: () => true, - now: () => new Date("2026-04-29T14:00:00.000Z"), - readFile: () => - JSON.stringify({ - claimedAt: "2026-04-29T12:00:00.000Z", - repoRoot: "/repo/current", - }), - testboxId: "tbx_01kqap50t9fqggzw1akg5dtmmq", - }); - - expect(result.ok).toBe(false); - expect(result.problems[0]).toContain("claim is stale"); - }); - - it("writes and accepts an OpenClaw Testbox claim for the current checkout", () => { - const writes = new Map(); - const claim = writeOpenClawTestboxClaim({ - cwd: "/repo/current", - env: { OPENCLAW_BLACKSMITH_TESTBOX_STATE_DIR: "/state/testboxes" }, - mkdir: () => undefined, - now: () => new Date("2026-04-29T12:00:00.000Z"), - testboxId: "tbx_01kqap50t9fqggzw1akg5dtmmq", - writeFile: (file, value) => writes.set(file, value), - }); - - expect(claim.payload).toEqual({ - claimedAt: "2026-04-29T12:00:00.000Z", - repoRoot: "/repo/current", - runnerVersion: 1, - }); - expect( - evaluateOpenClawTestboxClaim({ - cwd: "/repo/current", - env: { OPENCLAW_BLACKSMITH_TESTBOX_STATE_DIR: "/state/testboxes" }, - exists: (file) => writes.has(file), - now: () => new Date("2026-04-29T12:30:00.000Z"), - readFile: (file) => writes.get(file) ?? "", - testboxId: "tbx_01kqap50t9fqggzw1akg5dtmmq", - }).ok, - ).toBe(true); - }); -}); diff --git a/test/scripts/changed-lanes.test.ts b/test/scripts/changed-lanes.test.ts index 4ef9d5bce02..7d07a676ff5 100644 --- a/test/scripts/changed-lanes.test.ts +++ b/test/scripts/changed-lanes.test.ts @@ -9,10 +9,10 @@ import { isPackageScriptOnlyChange, } from "../../scripts/changed-lanes.mjs"; import { - buildChangedCheckTestboxArgs, + buildChangedCheckCrabboxArgs, createChangedCheckChildEnv, createChangedCheckPlan, - shouldDelegateChangedCheckToTestbox, + shouldDelegateChangedCheckToCrabbox, } from "../../scripts/check-changed.mjs"; import { cleanupTempDirs, makeTempRepoRoot } from "../helpers/temp-repo.js"; @@ -243,15 +243,36 @@ describe("scripts/changed-lanes", () => { it("delegates local Testbox-mode changed gates before running locally", () => { expect( - shouldDelegateChangedCheckToTestbox(["--base", "origin/main"], { + shouldDelegateChangedCheckToCrabbox(["--base", "origin/main"], { OPENCLAW_TESTBOX: "1", PATH: "/usr/bin", }), ).toBe(true); - expect(buildChangedCheckTestboxArgs(["--base", "origin/main", "--head", "HEAD"])).toEqual([ - "testbox:run", + expect(buildChangedCheckCrabboxArgs(["--base", "origin/main", "--head", "HEAD"])).toEqual([ + "crabbox:run", "--", + "--provider", + "blacksmith-testbox", + "--blacksmith-org", + "openclaw", + "--blacksmith-workflow", + ".github/workflows/ci-check-testbox.yml", + "--blacksmith-job", + "check", + "--blacksmith-ref", + "main", + "--idle-timeout", + "90m", + "--ttl", + "240m", + "--timing-json", + "--", + "CI=1", + "NODE_OPTIONS=--max-old-space-size=4096", + "OPENCLAW_TEST_PROJECTS_PARALLEL=6", + "OPENCLAW_VITEST_MAX_WORKERS=1", + "OPENCLAW_VITEST_NO_OUTPUT_TIMEOUT_MS=900000", "OPENCLAW_TESTBOX=1", "OPENCLAW_TESTBOX_REMOTE_RUN=1", "pnpm", @@ -264,15 +285,15 @@ describe("scripts/changed-lanes", () => { }); it("does not delegate dry-run, CI, or already-remote changed gates", () => { - expect(shouldDelegateChangedCheckToTestbox(["--dry-run"], { OPENCLAW_TESTBOX: "1" })).toBe( + expect(shouldDelegateChangedCheckToCrabbox(["--dry-run"], { OPENCLAW_TESTBOX: "1" })).toBe( false, ); expect( - shouldDelegateChangedCheckToTestbox([], { OPENCLAW_TESTBOX: "1", GITHUB_ACTIONS: "true" }), + shouldDelegateChangedCheckToCrabbox([], { OPENCLAW_TESTBOX: "1", GITHUB_ACTIONS: "true" }), ).toBe(false); - expect(shouldDelegateChangedCheckToTestbox([], { OPENCLAW_TESTBOX: "1", CI: "1" })).toBe(false); + expect(shouldDelegateChangedCheckToCrabbox([], { OPENCLAW_TESTBOX: "1", CI: "1" })).toBe(false); expect( - shouldDelegateChangedCheckToTestbox([], { + shouldDelegateChangedCheckToCrabbox([], { OPENCLAW_TESTBOX: "1", OPENCLAW_TESTBOX_REMOTE_RUN: "1", }), diff --git a/test/scripts/testbox-sync-sanity.test.ts b/test/scripts/testbox-sync-sanity.test.ts deleted file mode 100644 index 26bd7016a92..00000000000 --- a/test/scripts/testbox-sync-sanity.test.ts +++ /dev/null @@ -1,76 +0,0 @@ -import path from "node:path"; -import { describe, expect, it } from "vitest"; -import { - evaluateTestboxSyncSanity, - parseGitShortStatus, -} from "../../scripts/testbox-sync-sanity.mjs"; - -describe("testbox sync sanity", () => { - it("parses tracked deletions from git short status", () => { - expect( - parseGitShortStatus( - " D pnpm-lock.yaml\nD package.json\n?? scratch.txt\nR old.ts -> new.ts\n", - ), - ).toEqual([ - { - line: " D pnpm-lock.yaml", - path: "pnpm-lock.yaml", - status: " D", - trackedDeletion: true, - }, - { - line: "D package.json", - path: "package.json", - status: "D ", - trackedDeletion: true, - }, - { - line: "?? scratch.txt", - path: "scratch.txt", - status: "??", - trackedDeletion: false, - }, - { - line: "R old.ts -> new.ts", - path: "new.ts", - status: "R ", - trackedDeletion: false, - }, - ]); - }); - - it("fails before a gate when critical repo files disappeared", () => { - const result = evaluateTestboxSyncSanity({ - cwd: "/repo", - statusRaw: "", - exists: (file) => path.basename(file) !== "pnpm-lock.yaml", - }); - - expect(result.ok).toBe(false); - expect(result.problems).toContain("missing required root files: pnpm-lock.yaml"); - }); - - it("fails on mass tracked deletions unless explicitly allowed", () => { - const statusRaw = Array.from({ length: 3 }, (_, index) => ` D file-${index}.ts`).join("\n"); - const result = evaluateTestboxSyncSanity({ - cwd: "/repo", - statusRaw, - deletionThreshold: 3, - exists: () => true, - }); - - expect(result.ok).toBe(false); - expect(result.trackedDeletionCount).toBe(3); - expect(result.problems[0]).toContain("remote git status has 3 tracked deletions"); - - expect( - evaluateTestboxSyncSanity({ - cwd: "/repo", - statusRaw, - deletionThreshold: 3, - allowMassDeletions: true, - exists: () => true, - }).ok, - ).toBe(true); - }); -}); diff --git a/test/setup.shared.ts b/test/setup.shared.ts index f43c52ac9e4..e3121fc92a2 100644 --- a/test/setup.shared.ts +++ b/test/setup.shared.ts @@ -5,7 +5,7 @@ declare global { var __OPENCLAW_TEST_REFRESH_OPENAI_CODEX_TOKEN__: ((...args: unknown[]) => unknown) | undefined; } -vi.mock("@mariozechner/pi-ai/oauth", () => ({ +vi.mock("@earendil-works/pi-ai/oauth", () => ({ getOAuthApiKey: () => undefined, getOAuthProviders: () => [], loginOpenAICodex: vi.fn(),