Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .changeset/update-agent-package-dependencies.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
"@electric-ax/agents-runtime": patch
"@electric-ax/agents-server-conformance-tests": patch
"@electric-ax/agents-server": patch
"@electric-ax/agents": patch
---

Move agent runtime integrations from the deprecated `@mariozechner` packages to the new `@earendil-works` packages and refresh related dependency metadata.
8 changes: 4 additions & 4 deletions examples/agents-chat-starter/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,17 @@
"typecheck": "tsc --noEmit"
},
"dependencies": {
"@durable-streams/state": "npm:@electric-ax/durable-streams-state-beta@^0.3.0",
"@electric-ax/agents-runtime": "^0.0.4",
"@mariozechner/pi-agent-core": "^0.57.1",
"@durable-streams/state": "https://pkg.pr.new/durable-streams/durable-streams/@durable-streams/state@5d5c217",
"@electric-ax/agents-runtime": "workspace:*",
"@radix-ui/react-icons": "^1.3.0",
"@radix-ui/themes": "^3.3.0",
"@sinclair/typebox": "^0.34.0",
"@tanstack/db": "^0.6.0",
"@tanstack/react-db": "^0.1.78",
"react": "^19.2.4",
"react-dom": "^19.2.4",
"zod": "^4.3.6"
"zod": "^4.3.6",
"@earendil-works/pi-agent-core": "^0.75.4"
},
"devDependencies": {
"@types/react": "^19.2.14",
Expand Down
6 changes: 3 additions & 3 deletions examples/deep-survey/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,17 +11,17 @@
"typecheck": "tsc --noEmit"
},
"dependencies": {
"@durable-streams/state": "npm:@electric-ax/durable-streams-state-beta@^0.3.0",
"@durable-streams/state": "https://pkg.pr.new/durable-streams/durable-streams/@durable-streams/state@5d5c217",
"@electric-ax/agents-runtime": "workspace:*",
"@mariozechner/pi-agent-core": "^0.70.2",
"@radix-ui/themes": "^3.3.0",
"@sinclair/typebox": "^0.34.0",
"@tanstack/db": "^0.6.0",
"@tanstack/react-db": "^0.1.78",
"d3-force": "^3.0.0",
"react": "^19.2.4",
"react-dom": "^19.2.4",
"zod": "^4.3.6"
"zod": "^4.3.6",
"@earendil-works/pi-agent-core": "^0.75.4"
},
"devDependencies": {
"@types/d3-force": "^3.0.0",
Expand Down
2 changes: 1 addition & 1 deletion examples/deep-survey/src/server/orchestrator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { db } from '@electric-ax/agents-runtime'
import { queryOnce } from '@durable-streams/state'
import { Type } from '@sinclair/typebox'
import { exec, execFile } from 'node:child_process'
import type { AgentTool } from '@mariozechner/pi-agent-core'
import type { AgentTool } from '@earendil-works/pi-agent-core'
import { swarmSharedSchema, type WikiEntry, type Xref } from './schema.js'
import { explorerSpawnArgs } from './explorer.js'
import { SURVEY_WORKER_ENTITY_TYPE } from './survey-worker.js'
Expand Down
6 changes: 3 additions & 3 deletions packages/agents-runtime/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -83,8 +83,6 @@
"@anthropic-ai/sdk": "^0.78.0",
"@durable-streams/client": "https://pkg.pr.new/durable-streams/durable-streams/@durable-streams/client@5d5c217",
"@durable-streams/state": "https://pkg.pr.new/durable-streams/durable-streams/@durable-streams/state@5d5c217",
"@mariozechner/pi-agent-core": "^0.70.2",
"@mariozechner/pi-ai": "^0.70.2",
"@mozilla/readability": "^0.6.0",
"@sinclair/typebox": "^0.34.48",
"@standard-schema/spec": "^1.1.0",
Expand All @@ -97,7 +95,9 @@
"turndown": "^7.2.2",
"turndown-plugin-gfm": "^1.0.2",
"zod": "^4.3.6",
"zod-to-json-schema": "^3.25.2"
"zod-to-json-schema": "^3.25.2",
"@earendil-works/pi-agent-core": "^0.75.4",
"@earendil-works/pi-ai": "^0.75.4"
},
"devDependencies": {
"@durable-streams/server": "https://pkg.pr.new/durable-streams/durable-streams/@durable-streams/server@5d5c217",
Expand Down
4 changes: 2 additions & 2 deletions packages/agents-runtime/src/model-runner.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { readFileSync } from 'node:fs'
import { homedir } from 'node:os'
import { join } from 'node:path'
import { completeSimple, getModel } from '@mariozechner/pi-ai'
import { completeSimple, getModel } from '@earendil-works/pi-ai'
import type { AgentConfig } from './types'
import type { KnownProvider } from '@mariozechner/pi-ai'
import type { KnownProvider } from '@earendil-works/pi-ai'

export interface LowCostModelChoice {
provider: KnownProvider | string
Expand Down
19 changes: 13 additions & 6 deletions packages/agents-runtime/src/pi-adapter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
* - Delegating ID management and event writing to OutboundBridge
*/

import { Agent } from '@mariozechner/pi-agent-core'
import { getModel } from '@mariozechner/pi-ai'
import { Agent } from '@earendil-works/pi-agent-core'
import { getModel } from '@earendil-works/pi-ai'
import { createOutboundBridge } from './outbound-bridge'
import { runtimeLog } from './log'
import type { OutboundIdSeed } from './outbound-bridge'
Expand All @@ -18,12 +18,12 @@ import type {
AgentMessage,
AgentTool,
StreamFn,
} from '@mariozechner/pi-agent-core'
} from '@earendil-works/pi-agent-core'
import type {
KnownProvider,
Model,
SimpleStreamOptions,
} from '@mariozechner/pi-ai'
} from '@earendil-works/pi-ai'
import type { LLMMessage } from './types'

// ============================================================================
Expand Down Expand Up @@ -89,9 +89,16 @@ export function toAgentHistory(
const history: Array<AgentMessage> = []
const toolNamesById = new Map<string, string>()

const lastAssistant = (): AgentMessage | undefined => {
const lastAssistant = ():
| (AgentMessage & { role: `assistant`; content: Array<unknown> })
| undefined => {
const last = history[history.length - 1]
return last?.role === `assistant` ? last : undefined
return last?.role === `assistant`
? (last as AgentMessage & {
role: `assistant`
content: Array<unknown>
})
: undefined
}

for (const message of messages) {
Expand Down
2 changes: 1 addition & 1 deletion packages/agents-runtime/src/tools/bash.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { exec } from 'node:child_process'
import { Type } from '@sinclair/typebox'
import type { AgentTool } from '@mariozechner/pi-agent-core'
import type { AgentTool } from '@earendil-works/pi-agent-core'

const TIMEOUT_MS = 30_000
const MAX_OUTPUT_CHARS = 50_000
Expand Down
2 changes: 1 addition & 1 deletion packages/agents-runtime/src/tools/brave-search.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import Anthropic from '@anthropic-ai/sdk'
import { Type } from '@sinclair/typebox'
import type { AgentTool } from '@mariozechner/pi-agent-core'
import type { AgentTool } from '@earendil-works/pi-agent-core'

const BRAVE_API_URL = `https://api.search.brave.com/res/v1/web/search`
const SEARCH_FALLBACK_MODEL = `claude-haiku-4-5-20251001`
Expand Down
2 changes: 1 addition & 1 deletion packages/agents-runtime/src/tools/edit.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { relative, resolve } from 'node:path'
import { createTwoFilesPatch } from 'diff'
import { Type } from '@sinclair/typebox'
import { runtimeLog } from '../log'
import type { AgentTool } from '@mariozechner/pi-agent-core'
import type { AgentTool } from '@earendil-works/pi-agent-core'

const READ_GUARD_MESSAGE = (rel: string): string =>
`File ${rel} has not been read in this session (sessions are per-wake — re-read after waking from a worker).`
Expand Down
2 changes: 1 addition & 1 deletion packages/agents-runtime/src/tools/fetch-url.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { Readability } from '@mozilla/readability'
import { JSDOM, VirtualConsole } from 'jsdom'
import TurndownService from 'turndown'
import { completeWithLowCostModel } from '../model-runner'
import type { AgentTool } from '@mariozechner/pi-agent-core'
import type { AgentTool } from '@earendil-works/pi-agent-core'
import type { LowCostModelCatalog, LowCostModelConfig } from '../model-runner'

const MAX_RAW_CHARS = 100_000
Expand Down
2 changes: 1 addition & 1 deletion packages/agents-runtime/src/tools/read-file.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { readFile, stat } from 'node:fs/promises'
import { relative, resolve } from 'node:path'
import { Type } from '@sinclair/typebox'
import { runtimeLog } from '../log'
import type { AgentTool } from '@mariozechner/pi-agent-core'
import type { AgentTool } from '@earendil-works/pi-agent-core'

const MAX_FILE_SIZE = 512 * 1024 // 512 KB

Expand Down
2 changes: 1 addition & 1 deletion packages/agents-runtime/src/tools/schedules.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { randomUUID } from 'node:crypto'
import { Type } from '@sinclair/typebox'
import { runtimeLog } from '../log'
import type { AgentTool } from '@mariozechner/pi-agent-core'
import type { AgentTool } from '@earendil-works/pi-agent-core'
import type { EntityStreamDBWithActions } from '../entity-stream-db'

type ScheduleManifest = {
Expand Down
2 changes: 1 addition & 1 deletion packages/agents-runtime/src/tools/write.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { dirname, relative, resolve } from 'node:path'
import { createTwoFilesPatch } from 'diff'
import { Type } from '@sinclair/typebox'
import { runtimeLog } from '../log'
import type { AgentTool } from '@mariozechner/pi-agent-core'
import type { AgentTool } from '@earendil-works/pi-agent-core'

export function createWriteTool(
workingDirectory: string,
Expand Down
4 changes: 2 additions & 2 deletions packages/agents-runtime/src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,12 @@ import type {
import type {
AgentTool as PiAgentTool,
StreamFn,
} from '@mariozechner/pi-agent-core'
} from '@earendil-works/pi-agent-core'
import type {
KnownProvider,
Model,
SimpleStreamOptions,
} from '@mariozechner/pi-ai'
} from '@earendil-works/pi-ai'
import type {
EntityStreamDB as RuntimeEntityStreamDB,
EntityStreamDBWithActions as RuntimeEntityStreamDBWithActions,
Expand Down
2 changes: 1 addition & 1 deletion packages/agents-runtime/test/model-runner.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { beforeEach, describe, expect, test, vi } from 'vitest'
const completeSimple = vi.fn()
const getModel = vi.fn(() => ({ provider: `openai-codex`, id: `gpt-5.4-mini` }))

vi.mock(`@mariozechner/pi-ai`, () => ({ completeSimple, getModel }))
vi.mock(`@earendil-works/pi-ai`, () => ({ completeSimple, getModel }))

const { completeWithLowCostModel } = await import(`../src/model-runner`)

Expand Down
2 changes: 1 addition & 1 deletion packages/agents-runtime/test/pi-adapter.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import type {
Model,
ToolResultMessage,
UserMessage,
} from '@mariozechner/pi-ai'
} from '@earendil-works/pi-ai'

interface PiAgentAdapterConfig {
entityUrl: string
Expand Down
4 changes: 2 additions & 2 deletions packages/agents-server-conformance-tests/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,9 @@
},
"devDependencies": {
"@electric-ax/agents-server": "workspace:*",
"@mariozechner/pi-agent-core": "^0.70.2",
"tsdown": "^0.9.0",
"typescript": "^5.0.0"
"typescript": "^5.0.0",
"@earendil-works/pi-agent-core": "^0.75.4"
},
"engines": {
"node": ">=18.0.0"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { StreamFn } from '@mariozechner/pi-agent-core'
import type { StreamFn } from '@earendil-works/pi-agent-core'

export function createMockStreamFn(text: string): StreamFn {
return () => {
Expand Down
4 changes: 2 additions & 2 deletions packages/agents-server/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@
"@durable-streams/state": "https://pkg.pr.new/durable-streams/durable-streams/@durable-streams/state@5d5c217",
"@electric-ax/agents-runtime": "workspace:*",
"@electric-sql/client": "^1.5.18",
"@mariozechner/pi-agent-core": "^0.70.2",
"@opentelemetry/api": "^1.9.1",
"@sinclair/typebox": "^0.34.48",
"@whatwg-node/server": "^0.10.18",
Expand All @@ -63,7 +62,8 @@
"pino": "^10.3.1",
"pino-pretty": "^13.0.0",
"postgres": "^3.4.0",
"undici": "^7.24.7"
"undici": "^7.24.7",
"@earendil-works/pi-agent-core": "^0.75.4"
},
"devDependencies": {
"@electric-ax/agents": "workspace:*",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* SDK events into State Protocol writes via the provided writeEvent callback.
*/

import type { AgentTool, StreamFn } from '@mariozechner/pi-agent-core'
import type { AgentTool, StreamFn } from '@earendil-works/pi-agent-core'

/** A State Protocol event to be written via the adapter's writeEvent callback. */
export interface WriteEvent {
Expand Down
2 changes: 1 addition & 1 deletion packages/agents-server/src/server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import { serverLog } from './utils/log.js'
import type { DrizzleDB, PgClient } from './db/index.js'
import type { Server } from 'node:http'
import type { DurableStreamTestServer } from '@durable-streams/server'
import type { StreamFn } from '@mariozechner/pi-agent-core'
import type { StreamFn } from '@earendil-works/pi-agent-core'
import type {
AgentModel,
EntityRegistry,
Expand Down
2 changes: 1 addition & 1 deletion packages/agents-server/test/horton-pull-wake-e2e.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import {
TEST_POSTGRES_URL,
resetElectricAgentsTestBackend,
} from './test-backend'
import type { StreamFn } from '@mariozechner/pi-agent-core'
import type { StreamFn } from '@earendil-works/pi-agent-core'

function createMockStreamFn(responseText: string): StreamFn {
return vi.fn(((model) => {
Expand Down
6 changes: 3 additions & 3 deletions packages/agents/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -54,15 +54,15 @@
"@durable-streams/state": "https://pkg.pr.new/durable-streams/durable-streams/@durable-streams/state@5d5c217",
"@electric-ax/agents-mcp": "workspace:*",
"@electric-ax/agents-runtime": "workspace:*",
"@mariozechner/pi-agent-core": "^0.70.2",
"@mariozechner/pi-ai": "^0.70.2",
"@sinclair/typebox": "^0.34.48",
"better-sqlite3": "^12.9.0",
"nanoid": "^3.3.11",
"pino": "^10.3.1",
"pino-pretty": "^13.0.0",
"sqlite-vec": "^0.1.9",
"zod": "^4.3.6"
"zod": "^4.3.6",
"@earendil-works/pi-agent-core": "^0.75.4",
"@earendil-works/pi-ai": "^0.75.4"
},
"devDependencies": {
"@types/better-sqlite3": "^7.6.13",
Expand Down
2 changes: 1 addition & 1 deletion packages/agents/src/agents/horton.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import {
type BuiltinAgentModelConfig,
type BuiltinModelCatalog,
} from '../model-catalog'
import type { AgentTool, StreamFn } from '@mariozechner/pi-agent-core'
import type { AgentTool, StreamFn } from '@earendil-works/pi-agent-core'
import type {
EntityRegistry,
HandlerContext,
Expand Down
2 changes: 1 addition & 1 deletion packages/agents/src/agents/worker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import {
type BuiltinModelCatalog,
} from '../model-catalog'
import type { WorkerToolName } from '../tools/spawn-worker'
import type { AgentTool, StreamFn } from '@mariozechner/pi-agent-core'
import type { AgentTool, StreamFn } from '@earendil-works/pi-agent-core'
import type {
EntityRegistry,
HandlerContext,
Expand Down
2 changes: 1 addition & 1 deletion packages/agents/src/bootstrap.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import type {
RuntimeHandler,
} from '@electric-ax/agents-runtime'
import type { ChangeEvent } from '@durable-streams/state'
import type { StreamFn } from '@mariozechner/pi-agent-core'
import type { StreamFn } from '@earendil-works/pi-agent-core'
import type { IncomingMessage, ServerResponse } from 'node:http'
import type { SkillsRegistry } from '@electric-ax/agents-runtime'

Expand Down
2 changes: 1 addition & 1 deletion packages/agents/src/model-catalog.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { getModels } from '@mariozechner/pi-ai'
import { getModels } from '@earendil-works/pi-ai'
import {
detectAvailableProviders,
readCodexAccessToken,
Expand Down
2 changes: 1 addition & 1 deletion packages/agents/src/server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ import type {
PullWakeRunnerConfig,
} from '@electric-ax/agents-runtime'
import type { ChangeEvent } from '@durable-streams/state'
import type { StreamFn } from '@mariozechner/pi-agent-core'
import type { StreamFn } from '@earendil-works/pi-agent-core'

export interface BuiltinAgentsServerOptions {
agentServerUrl: string
Expand Down
2 changes: 1 addition & 1 deletion packages/agents/src/tools/spawn-worker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { Type } from '@sinclair/typebox'
import { nanoid } from 'nanoid'
import { serverLog } from '../log'
import type { BuiltinAgentModelConfig } from '../model-catalog'
import type { AgentTool } from '@mariozechner/pi-agent-core'
import type { AgentTool } from '@earendil-works/pi-agent-core'
import type { HandlerContext } from '@electric-ax/agents-runtime'

export const WORKER_TOOL_NAMES = [
Expand Down
Loading
Loading