FN-5638: migrate pi-ai and pi-coding-agent packages to @earendil-works scope

Fusion-Task-Id: FN-5638

Fusion-Task-Lineage: 6e99c156-5f6c-42e6-bd26-618e08ffd05f
This commit is contained in:
gsxdsm
2026-05-28 21:23:48 -07:00
parent f258a75162
commit cec191eac3
87 changed files with 1154 additions and 2894 deletions

View File

@@ -1,6 +1,6 @@
import { afterEach, describe, expect, it, vi } from "vitest";
import { AuthStorage, ModelRegistry } from "@mariozechner/pi-coding-agent";
import { completeSimple } from "@mariozechner/pi-ai";
import { AuthStorage, ModelRegistry } from "@earendil-works/pi-coding-agent";
import { completeSimple } from "@earendil-works/pi-ai";
import { customProviderRegistryKey, type CustomProvider } from "@fusion/core";
describe("custom providers openai-completions regression", () => {

View File

@@ -12,7 +12,7 @@ import { findWorktreeUser, aiMergeTask } from "../merger.js";
import { WorktreePool } from "../worktree-pool.js";
import { generateWorktreeName, slugify } from "../worktree-names.js";
import type { Task, TaskDetail } from "@fusion/core";
import { SessionManager } from "@mariozechner/pi-coding-agent";
import { SessionManager } from "@earendil-works/pi-coding-agent";
import { StepSessionExecutor } from "../step-session-executor.js";
import { executorLog } from "../logger.js";
import { withRateLimitRetry } from "../rate-limit-retry.js";

View File

@@ -12,7 +12,7 @@ import { findWorktreeUser, aiMergeTask } from "../merger.js";
import { WorktreePool } from "../worktree-pool.js";
import { generateWorktreeName, slugify } from "../worktree-names.js";
import type { Task, TaskDetail } from "@fusion/core";
import { SessionManager } from "@mariozechner/pi-coding-agent";
import { SessionManager } from "@earendil-works/pi-coding-agent";
import { StepSessionExecutor } from "../step-session-executor.js";
import { executorLog } from "../logger.js";
import { withRateLimitRetry } from "../rate-limit-retry.js";

View File

@@ -13,7 +13,7 @@ import { findWorktreeUser, aiMergeTask } from "../merger.js";
import { WorktreePool } from "../worktree-pool.js";
import { generateWorktreeName, slugify } from "../worktree-names.js";
import type { Task, TaskDetail } from "@fusion/core";
import { SessionManager } from "@mariozechner/pi-coding-agent";
import { SessionManager } from "@earendil-works/pi-coding-agent";
import { StepSessionExecutor } from "../step-session-executor.js";
import { executorLog } from "../logger.js";
import { withRateLimitRetry } from "../rate-limit-retry.js";

View File

@@ -12,7 +12,7 @@ import { findWorktreeUser, aiMergeTask } from "../merger.js";
import { WorktreePool } from "../worktree-pool.js";
import { generateWorktreeName, slugify } from "../worktree-names.js";
import type { Task, TaskDetail } from "@fusion/core";
import { SessionManager } from "@mariozechner/pi-coding-agent";
import { SessionManager } from "@earendil-works/pi-coding-agent";
import { StepSessionExecutor } from "../step-session-executor.js";
import { executorLog } from "../logger.js";
import { withRateLimitRetry } from "../rate-limit-retry.js";

View File

@@ -12,7 +12,7 @@ import { findWorktreeUser, aiMergeTask } from "../merger.js";
import { WorktreePool } from "../worktree-pool.js";
import { generateWorktreeName, slugify } from "../worktree-names.js";
import type { Task, TaskDetail } from "@fusion/core";
import { SessionManager } from "@mariozechner/pi-coding-agent";
import { SessionManager } from "@earendil-works/pi-coding-agent";
import { StepSessionExecutor } from "../step-session-executor.js";
import { executorLog } from "../logger.js";
import { withRateLimitRetry } from "../rate-limit-retry.js";

View File

@@ -12,7 +12,7 @@ import { findWorktreeUser, aiMergeTask } from "../merger.js";
import { WorktreePool } from "../worktree-pool.js";
import { generateWorktreeName, slugify } from "../worktree-names.js";
import type { Task, TaskDetail } from "@fusion/core";
import { SessionManager } from "@mariozechner/pi-coding-agent";
import { SessionManager } from "@earendil-works/pi-coding-agent";
import { StepSessionExecutor } from "../step-session-executor.js";
import { executorLog } from "../logger.js";
import { withRateLimitRetry } from "../rate-limit-retry.js";

View File

@@ -249,7 +249,7 @@ vi.mock("../verification-utils.js", async () => {
runVerificationCommand: vi.fn(),
};
});
vi.mock("@mariozechner/pi-coding-agent", () => {
vi.mock("@earendil-works/pi-coding-agent", () => {
const mockSessionManager = {};
return {
SessionManager: {
@@ -269,7 +269,7 @@ vi.mock("@mariozechner/pi-coding-agent", () => {
});
import { createFnAgent } from "../pi.js";
import { SessionManager } from "@mariozechner/pi-coding-agent";
import { SessionManager } from "@earendil-works/pi-coding-agent";
import { generateWorktreeName } from "../worktree-names.js";
import { findWorktreeUser } from "../merger.js";
import { StepSessionExecutor } from "../step-session-executor.js";

View File

@@ -15,7 +15,7 @@ import { BranchConflictError } from "../branch-conflicts.js";
import * as branchConflictModule from "../branch-conflicts.js";
import { generateWorktreeName, slugify } from "../worktree-names.js";
import type { Task, TaskDetail } from "@fusion/core";
import { SessionManager } from "@mariozechner/pi-coding-agent";
import { SessionManager } from "@earendil-works/pi-coding-agent";
import { StepSessionExecutor } from "../step-session-executor.js";
import { executorLog } from "../logger.js";
import { withRateLimitRetry } from "../rate-limit-retry.js";

View File

@@ -36,7 +36,7 @@ vi.mock("../logger.js", () => ({
},
}));
vi.mock("@mariozechner/pi-ai", () => ({
vi.mock("@earendil-works/pi-ai", () => ({
getModel: mockGetModel,
streamSimple: mockStreamSimple,
}));

View File

@@ -18,7 +18,7 @@ vi.mock("node:https", () => ({
import * as http from "node:http";
import * as https from "node:https";
import type { ToolDefinition } from "@mariozechner/pi-coding-agent";
import type { ToolDefinition } from "@earendil-works/pi-coding-agent";
import { accumulateSessionTokenUsage } from "../session-token-usage.js";
import {
MOCK_PROVIDER_ID,
@@ -233,7 +233,7 @@ describe("MockAgentRuntime", () => {
}
const source = await readFile(new URL("../providers/mock-provider.ts", import.meta.url), "utf8");
for (const forbidden of ["node:http", "node:https", "undici", "node-fetch", "@mariozechner/pi-ai"]) {
for (const forbidden of ["node:http", "node:https", "undici", "node-fetch", "@earendil-works/pi-ai"]) {
expect(source).not.toContain(forbidden);
}
expect(MOCK_PROVIDER_ID).toBe("mock");

View File

@@ -79,7 +79,7 @@ vi.mock("../custom-providers.js", () => ({
readCustomProviders: readCustomProvidersMock,
}));
vi.mock("@mariozechner/pi-coding-agent", () => ({
vi.mock("@earendil-works/pi-coding-agent", () => ({
AuthStorage: {
create: () => ({
setFallbackResolver: setFallbackResolverMock,
@@ -1803,7 +1803,7 @@ describe("createFnAgent", () => {
it("without skillSelection does not pass skillsOverride to resource loader", async () => {
let capturedResourceLoaderOptions: any;
vi.doMock("@mariozechner/pi-coding-agent", () => ({
vi.doMock("@earendil-works/pi-coding-agent", () => ({
AuthStorage: {
create: () => ({
setFallbackResolver: setFallbackResolverMock,
@@ -1890,7 +1890,7 @@ describe("createFnAgent", () => {
});
let capturedResourceLoaderOptions: any;
vi.doMock("@mariozechner/pi-coding-agent", () => ({
vi.doMock("@earendil-works/pi-coding-agent", () => ({
AuthStorage: {
create: () => ({
setFallbackResolver: setFallbackResolverMock,
@@ -1974,7 +1974,7 @@ describe("createFnAgent", () => {
it("with skillSelection (specific requested names) activates skill filtering", async () => {
let capturedResourceLoaderOptions: any;
vi.doMock("@mariozechner/pi-coding-agent", () => ({
vi.doMock("@earendil-works/pi-coding-agent", () => ({
AuthStorage: {
create: () => ({
setFallbackResolver: setFallbackResolverMock,

View File

@@ -80,7 +80,7 @@ vi.mock("../custom-providers.js", () => ({
readCustomProviders: readCustomProvidersMock,
}));
vi.mock("@mariozechner/pi-coding-agent", () => ({
vi.mock("@earendil-works/pi-coding-agent", () => ({
AuthStorage: {
create: () => ({
setFallbackResolver: setFallbackResolverMock,

View File

@@ -1,6 +1,6 @@
import { describe, it, expect, vi, beforeEach, afterEach } from "vitest";
import { describeModel, compactSessionContext, COMPACTION_FALLBACK_INSTRUCTIONS, createFnAgent, getProjectRootFromWorktree, promptWithFallback, type AgentOptions } from "../pi.js";
import { createAgentSession, type AgentSession } from "@mariozechner/pi-coding-agent";
import { createAgentSession, type AgentSession } from "@earendil-works/pi-coding-agent";
import { piLog } from "../logger.js";
// Mock skill resolver functions - define inside factory to avoid hoisting issues
@@ -19,7 +19,7 @@ vi.mock("../skill-resolver.js", () => {
});
// Mock pi-coding-agent imports
vi.mock("@mariozechner/pi-coding-agent", () => ({
vi.mock("@earendil-works/pi-coding-agent", () => ({
AuthStorage: {
create: vi.fn(() => ({
getCredentials: vi.fn().mockResolvedValue({}),

View File

@@ -3,7 +3,7 @@ import type { AgentStore } from "@fusion/core";
import type { PluginRunner } from "../plugin-runner.js";
import { buildSessionSkillContext } from "../session-skill-context.js";
import { createSkillsOverrideFromSelection, resolveSessionSkills } from "../skill-resolver.js";
import type { Skill } from "@mariozechner/pi-coding-agent";
import type { Skill } from "@earendil-works/pi-coding-agent";
describe("plugin skill integration", () => {
const projectRootDir = "/test/project";

View File

@@ -1,6 +1,6 @@
import { describe, it, expect, vi, beforeEach, afterEach } from "vitest";
vi.mock("@mariozechner/pi-ai", () => ({
vi.mock("@earendil-works/pi-ai", () => ({
Type: {
Object: (props: Record<string, unknown>) => ({ type: "object", properties: props }),
String: (opts?: unknown) => ({ type: "string", ...((opts as object) ?? {}) }),

View File

@@ -225,7 +225,7 @@ vi.mock("node:fs/promises", async (importOriginal) => {
rm: vi.fn().mockResolvedValue(undefined),
};
});
vi.mock("@mariozechner/pi-ai", () => ({
vi.mock("@earendil-works/pi-ai", () => ({
Type: {
Object: (props: Record<string, unknown>) => ({ type: "object", properties: props }),
String: (opts?: unknown) => ({ type: "string", ...((opts as object) ?? {}) }),
@@ -237,7 +237,7 @@ vi.mock("@mariozechner/pi-ai", () => ({
Literal: (value: unknown) => ({ const: value }),
},
}));
vi.mock("@mariozechner/pi-coding-agent", () => {
vi.mock("@earendil-works/pi-coding-agent", () => {
const mockSessionManager = {};
return {
SessionManager: {