Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
663da45
chore(lint): apply repo formatter fixes
Jul 3, 2026
bdc5018
fix(cloud-api): align shared market shim
Jul 3, 2026
c880fc8
chore(lint): fix rebased auth exports
Jul 3, 2026
b9393c4
chore(build): ignore auth source declaration emit
Jul 3, 2026
a33fc6e
chore(lint): sort control transport test imports
Jul 3, 2026
037c143
fix(calendar): keep meeting helpers bundle-local
Jul 4, 2026
46ddbf5
chore(hyperliquid): refresh generated plugin entry
Jul 4, 2026
76a2f6a
fix(app-core): skip recursive runtime package symlinks
Jul 4, 2026
c56402e
chore(lint): sort rebased connector imports
Jul 4, 2026
b691d6a
chore(lint): format rebased messaging adapters
Jul 4, 2026
9181ef4
chore(tee): fix confidential import specifiers
Jul 4, 2026
ea716ff
fix(blocker): include platform in website permission state
Jul 4, 2026
81b96fe
fix(websiteblocker): report native permission platform
Jul 4, 2026
30f1643
chore(lockfile): sync trajectory logger workspace dependency
Jul 4, 2026
ce1d3d3
chore(lint): sort cloud ui approval imports
Jul 4, 2026
b9d1040
chore(lint): sort agent autonomy imports
Jul 4, 2026
9c73a2a
chore(lint): format rebased ui and plugin files
Jul 4, 2026
112e130
chore(lint): format app and desktop shell files
Jul 4, 2026
d4c2849
fix(ui): expose shared events to dynamic views
Jul 4, 2026
03a4de7
chore(lint): format final rebased files
Jul 4, 2026
ea4fcd8
chore(lint): apply final formatter fixes
Jul 4, 2026
ed4f935
fix(app): stub capacitor attachment plugins for web builds
Jul 4, 2026
d4e8b9a
fix(agent): type dispatch route onchunk test handlers
Jul 4, 2026
acd7535
fix(electrobun): normalize renderer proxy api base
Jul 4, 2026
2891758
fix(agent): declare ui navigation window helpers
Jul 4, 2026
75c00a9
chore(validation): fix rebased verify fallout
Jul 4, 2026
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
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,8 @@ packages/cloud/sdk/src/**/*.js
packages/cloud/sdk/src/**/*.js.map
packages/cloud/sdk/src/**/*.d.ts
packages/cloud/sdk/src/**/*.d.ts.map
packages/auth/src/**/*.d.ts
packages/auth/src/**/*.d.ts.map
packages/plugin-remote-manifest/src/**/*.js
packages/plugin-remote-manifest/src/**/*.js.map
packages/plugin-remote-manifest/src/**/*.d.ts
Expand Down Expand Up @@ -443,6 +445,8 @@ packages/shared/src/**/*.js.map
packages/shared/src/**/*.d.ts
packages/shared/src/**/*.d.ts.map
!packages/shared/src/elizaos-core-roles.d.ts
packages/ui/src/**/*.js
packages/ui/src/**/*.js.map
packages/ui/src/**/*.d.ts
packages/ui/src/**/*.d.ts.map
# Hand-written ambient declarations for npm deps without their own types.
Expand Down
93 changes: 47 additions & 46 deletions bun.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion packages/agent/src/actions/trigger.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ import {
type Action,
type ActionExample,
type ActionResult,
asUUID,
AUTONOMY_SERVICE_TYPE,
asUUID,
type HandlerCallback,
type HandlerOptions,
type IAgentRuntime,
Expand Down
2 changes: 1 addition & 1 deletion packages/agent/src/api/agent-lifecycle-routes.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import {
AUTONOMY_SERVICE_TYPE,
type AgentRuntime,
AUTONOMY_SERVICE_TYPE,
type RouteRequestMeta,
} from "@elizaos/core";
import type { RouteHelpers } from "@elizaos/shared";
Expand Down
18 changes: 11 additions & 7 deletions packages/agent/src/api/dispatch-route-onchunk.test.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { IAgentRuntime, Route } from "@elizaos/core";
import type { IAgentRuntime, LegacyRouteHandler, Route } from "@elizaos/core";
import { describe, expect, it } from "vitest";
import { dispatchRoute } from "./dispatch-route.ts";

Expand All @@ -15,13 +15,17 @@ function runtimeWithRoutes(routes: Route[]): IAgentRuntime {
return { routes } as unknown as IAgentRuntime;
}

function legacyHandler(handler: LegacyRouteHandler): LegacyRouteHandler {
return handler;
}

describe("dispatchRoute onChunk sink (#12352)", () => {
it("forwards each SSE fragment live and returns the buffered body", async () => {
const seen: string[] = [];
const route: Route = {
type: "POST",
path: "/api/stream",
handler: async (_req: unknown, res: unknown) => {
handler: legacyHandler(async (_req, res) => {
const r = res as unknown as {
setHeader: (k: string, v: string) => void;
write: (c: string) => void;
Expand All @@ -31,7 +35,7 @@ describe("dispatchRoute onChunk sink (#12352)", () => {
r.write("data: one\n\n");
r.write("data: two\n\n");
r.end();
},
}),
} as unknown as Route;

const chunks: string[] = [];
Expand Down Expand Up @@ -60,9 +64,9 @@ describe("dispatchRoute onChunk sink (#12352)", () => {
const route: Route = {
type: "GET",
path: "/api/plain",
handler: async (_req: unknown, res: unknown) => {
handler: legacyHandler(async (_req, res) => {
(res as unknown as { json: (b: unknown) => void }).json({ ok: true });
},
}),
} as unknown as Route;

let chunkCount = 0;
Expand All @@ -87,15 +91,15 @@ describe("dispatchRoute onChunk sink (#12352)", () => {
const route: Route = {
type: "POST",
path: "/api/stream",
handler: async (_req: unknown, res: unknown) => {
handler: legacyHandler(async (_req, res) => {
const r = res as unknown as {
write: (c: string) => void;
end: () => void;
};
r.write("a");
r.write("b");
r.end();
},
}),
} as unknown as Route;

const result = await dispatchRoute({
Expand Down
14 changes: 11 additions & 3 deletions packages/agent/src/api/media-runtime.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -292,7 +292,10 @@ describe("mediaFileRoute", () => {
// this in-process route; a forwarded `Range` header is what lets an
// `<audio>`/`<video>` element seek. `dispatchRoute` lowercases request
// headers, so the handler reads `ctx.headers.range`.
const { fileName } = persistMediaBytes(Buffer.from("0123456789"), "audio/mpeg");
const { fileName } = persistMediaBytes(
Buffer.from("0123456789"),
"audio/mpeg",
);
const result = await mediaFileRoute.routeHandler?.({
params: { filename: fileName },
method: "GET",
Expand All @@ -305,14 +308,19 @@ describe("mediaFileRoute", () => {
});

it("serves the full 200 when no Range header is present", async () => {
const { fileName } = persistMediaBytes(Buffer.from("full-body"), "audio/mpeg");
const { fileName } = persistMediaBytes(
Buffer.from("full-body"),
"audio/mpeg",
);
const result = await mediaFileRoute.routeHandler?.({
params: { filename: fileName },
method: "GET",
headers: {},
} as never);
expect(result?.status).toBe(200);
expect(result?.headers?.["Accept-Ranges"]).toBe("bytes");
expect((result?.body as Buffer).equals(Buffer.from("full-body"))).toBe(true);
expect((result?.body as Buffer).equals(Buffer.from("full-body"))).toBe(
true,
);
});
});
8 changes: 3 additions & 5 deletions packages/agent/src/external-modules.d.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
declare module "@elizaos/plugin-agent-orchestrator";
declare module "@elizaos/plugin-capacitor-bridge" {
import type { Server } from "node:http";
import type {
AgentRuntime,
MobileDeviceBridgeStatus,
} from "@elizaos/core";
import type { AgentRuntime, MobileDeviceBridgeStatus } from "@elizaos/core";

export type { MobileDeviceBridgeStatus };

Expand Down Expand Up @@ -853,7 +850,6 @@ declare module "@elizaos/ui" {
export const App: ComponentType<AnyValue>;
export const AppProvider: ComponentType<AnyValue>;
export const AppWindowRenderer: ComponentType<AnyValue>;
export const EmbeddedAppViewer: ComponentType<AnyValue>;
export const Button: ComponentType<AnyValue>;
export const CharacterEditor: ComponentType<AnyValue>;
export const COMMAND_PALETTE_EVENT: string;
Expand Down Expand Up @@ -932,6 +928,8 @@ declare module "@elizaos/ui" {

declare module "@elizaos/ui/navigation" {
export const TAB_PATHS: Record<string, string>;
export const getWindowNavigationPath: AnyFunction;
export const isAppWindowRoute: AnyFunction;
}

declare module "@elizaos/plugin-discord" {
Expand Down
2 changes: 1 addition & 1 deletion packages/agent/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ export async function validateCloudBaseUrl(
const { validateCloudBaseUrl } = await loadElizaCloudRoutes();
return validateCloudBaseUrl(value);
}
export * from "@elizaos/auth";
export type { ElizaConfig, ReleaseChannel, RolesConfig } from "@elizaos/shared";
export {
CONNECTOR_PLUGINS,
Expand Down Expand Up @@ -178,7 +179,6 @@ export {
export { getWalletAddresses, initStewardWalletCache } from "./api/wallet.ts";
export * from "./api/wallet-capability.ts";
export * from "./api/workbench-helpers.ts";
export * from "@elizaos/auth";
export * from "./awareness/index.ts";
export { runBenchmark } from "./cli/benchmark.ts";
export { CharacterSchema } from "./config/character-schema.ts";
Expand Down
18 changes: 8 additions & 10 deletions packages/agent/src/triggers/runtime.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,5 @@
import crypto from "node:crypto";
import type {
IAgentRuntime,
Memory,
Service,
Task,
UUID,
} from "@elizaos/core";
import type { IAgentRuntime, Memory, Service, Task, UUID } from "@elizaos/core";
import { ServiceType, stringToUuid } from "@elizaos/core";
import {
buildTriggerMetadata,
Expand Down Expand Up @@ -254,7 +248,9 @@ interface AutonomyRoomService {
async function dispatchPrompt(
runtime: IAgentRuntime,
trigger: PromptTriggerConfig,
): Promise<{ ok: true; executionId?: undefined } | { ok: false; error: string }> {
): Promise<
{ ok: true; executionId?: undefined } | { ok: false; error: string }
> {
const instructions = trigger.instructions.trim();
if (!instructions) {
return { ok: false, error: "prompt trigger missing instructions" };
Expand All @@ -265,8 +261,10 @@ async function dispatchPrompt(
}

const roomId =
(runtime.getService("AUTONOMY") as AutonomyRoomService | null)
?.getAutonomousRoomId?.() ?? stringToUuid(`trigger-room:${runtime.agentId}`);
(
runtime.getService("AUTONOMY") as AutonomyRoomService | null
)?.getAutonomousRoomId?.() ??
stringToUuid(`trigger-room:${runtime.agentId}`);
const entityId = stringToUuid(`trigger-entity:${trigger.triggerId}`);

const message: Memory = {
Expand Down
8 changes: 6 additions & 2 deletions packages/agent/src/triggers/workbench-migration.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,9 @@ function makeWorkbenchTask(overrides: Partial<Task>): Task {

describe("decodeScheduleTag", () => {
it("decodes a schedule:<cron> tag", () => {
expect(decodeScheduleTag(["workbench-task", "schedule:0 9 * * 1-5"])).toEqual({
expect(
decodeScheduleTag(["workbench-task", "schedule:0 9 * * 1-5"]),
).toEqual({
triggerType: "cron",
cronExpression: "0 9 * * 1-5",
});
Expand Down Expand Up @@ -92,7 +94,9 @@ describe("migrateWorkbenchScheduleTags", () => {
const patch = updates[0].patch;
expect(patch.name).toBe(TRIGGER_TASK_NAME);
// Retagged to the trigger tags; the schedule tag and workbench-task tag are gone.
expect(patch.tags).toEqual(expect.arrayContaining(["queue", "repeat", "trigger"]));
expect(patch.tags).toEqual(
expect.arrayContaining(["queue", "repeat", "trigger"]),
);
expect(patch.tags).not.toContain("workbench-task");
expect(patch.tags?.some((t) => t.startsWith("schedule:"))).toBe(false);

Expand Down
6 changes: 5 additions & 1 deletion packages/agent/src/triggers/workbench-migration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,11 @@ import crypto from "node:crypto";
import type { IAgentRuntime, Task, TriggerType, UUID } from "@elizaos/core";
import { stringToUuid } from "@elizaos/core";
import { WORKBENCH_TASK_TAG } from "../api/workbench-helpers.ts";
import { readTriggerConfig, TRIGGER_TASK_NAME, TRIGGER_TASK_TAGS } from "./runtime.ts";
import {
readTriggerConfig,
TRIGGER_TASK_NAME,
TRIGGER_TASK_TAGS,
} from "./runtime.ts";
import { buildTriggerConfig, buildTriggerMetadata } from "./scheduling.ts";
import type { NormalizedTriggerDraft } from "./types.ts";

Expand Down
3 changes: 2 additions & 1 deletion packages/app-core/platforms/electrobun/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -844,7 +844,8 @@ async function startRendererServer(): Promise<string> {
// on same-origin /api fetches whether it's loaded via Vite (watch mode)
// or this static server (non-watch dev:desktop). Without this, every
// /api/* call returned SPA HTML and Settings sat on "Loading…" forever.
const apiBase = apiBaseOwner.getCurrent().base ?? initialApiBase;
const apiBase =
apiBaseOwner.getCurrent().base ?? initialApiBase ?? undefined;
if (shouldProxyToApiBase(apiBase) && isRendererApiProxyPath(pathname)) {
const target = new URL(pathname + url.search, apiBase);
try {
Expand Down
Loading
Loading