mirror of
https://github.com/davidkaya/aryx.git
synced 2026-07-27 06:58:44 +02:00
refactor: finish Aryx rebrand sweep
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
+3
-3
@@ -20,15 +20,15 @@
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/davidkaya/eryx.git"
|
||||
"url": "git+https://github.com/davidkaya/aryx.git"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"bugs": {
|
||||
"url": "https://github.com/davidkaya/eryx/issues"
|
||||
"url": "https://github.com/davidkaya/aryx/issues"
|
||||
},
|
||||
"homepage": "https://github.com/davidkaya/eryx#readme",
|
||||
"homepage": "https://github.com/davidkaya/aryx#readme",
|
||||
"packageManager": "bun@1.3.6",
|
||||
"devDependencies": {
|
||||
"@lexical/headless": "0.42.0",
|
||||
|
||||
@@ -138,7 +138,7 @@ function isSidecarStoppedBeforeCompletionError(error: unknown): error is Error {
|
||||
return error instanceof Error && error.message === SIDECAR_STOPPED_BEFORE_COMPLETION_MESSAGE;
|
||||
}
|
||||
|
||||
export class EryxAppService extends EventEmitter<AppServiceEvents> {
|
||||
export class AryxAppService extends EventEmitter<AppServiceEvents> {
|
||||
private readonly workspaceRepository = new WorkspaceRepository();
|
||||
private readonly sidecar = new SidecarClient();
|
||||
private readonly secretStore = new SecretStore();
|
||||
+3
-3
@@ -1,15 +1,15 @@
|
||||
import { app, BrowserWindow } from 'electron';
|
||||
|
||||
import { registerIpcHandlers } from '@main/ipc/registerIpcHandlers';
|
||||
import { EryxAppService } from '@main/EryxAppService';
|
||||
import { AryxAppService } from '@main/AryxAppService';
|
||||
import { createMainWindow } from '@main/windows/createMainWindow';
|
||||
import { applyTitleBarTheme } from '@main/windows/titleBarTheme';
|
||||
|
||||
let mainWindow: BrowserWindow | undefined;
|
||||
let appService: EryxAppService | undefined;
|
||||
let appService: AryxAppService | undefined;
|
||||
|
||||
async function bootstrap(): Promise<void> {
|
||||
appService = new EryxAppService();
|
||||
appService = new AryxAppService();
|
||||
|
||||
mainWindow = createMainWindow();
|
||||
registerIpcHandlers(mainWindow, appService);
|
||||
|
||||
@@ -24,10 +24,10 @@ import type {
|
||||
import type { QuerySessionsInput } from '@shared/domain/sessionLibrary';
|
||||
import type { AppearanceTheme } from '@shared/domain/tooling';
|
||||
|
||||
import { EryxAppService } from '@main/EryxAppService';
|
||||
import { AryxAppService } from '@main/AryxAppService';
|
||||
import { applyTitleBarTheme } from '@main/windows/titleBarTheme';
|
||||
|
||||
export function registerIpcHandlers(window: BrowserWindow, service: EryxAppService): void {
|
||||
export function registerIpcHandlers(window: BrowserWindow, service: AryxAppService): void {
|
||||
ipcMain.handle(ipcChannels.describeSidecarCapabilities, () => service.describeSidecarCapabilities());
|
||||
ipcMain.handle(ipcChannels.refreshSidecarCapabilities, () => service.refreshSidecarCapabilities());
|
||||
ipcMain.handle(ipcChannels.loadWorkspace, () => service.loadWorkspace());
|
||||
|
||||
@@ -6,10 +6,10 @@ describe('resolveWindowIconPath', () => {
|
||||
test('uses the Windows ico asset from the platform-specific icon directory', () => {
|
||||
expect(
|
||||
resolveWindowIconPath({
|
||||
appPath: 'C:\\workspace\\personal\\repositories\\eryx',
|
||||
appPath: 'C:\\workspace\\personal\\repositories\\aryx',
|
||||
platform: 'win32',
|
||||
}),
|
||||
).toBe('C:\\workspace\\personal\\repositories\\eryx\\assets\\icons\\windows\\icon.ico');
|
||||
).toBe('C:\\workspace\\personal\\repositories\\aryx\\assets\\icons\\windows\\icon.ico');
|
||||
});
|
||||
|
||||
test('uses the macOS icns asset on Darwin', () => {
|
||||
|
||||
@@ -11,8 +11,8 @@ const TIMESTAMP = '2026-03-25T00:00:00.000Z';
|
||||
mock.module('electron', () => ({
|
||||
app: {
|
||||
isPackaged: false,
|
||||
getAppPath: () => 'C:\\workspace\\personal\\repositories\\eryx',
|
||||
getPath: () => 'C:\\workspace\\personal\\repositories\\eryx\\tests\\fixtures',
|
||||
getAppPath: () => 'C:\\workspace\\personal\\repositories\\aryx',
|
||||
getPath: () => 'C:\\workspace\\personal\\repositories\\aryx\\tests\\fixtures',
|
||||
},
|
||||
dialog: {
|
||||
showOpenDialog: async () => ({ canceled: true, filePaths: [] }),
|
||||
@@ -30,7 +30,7 @@ mock.module('keytar', () => ({
|
||||
},
|
||||
}));
|
||||
|
||||
const { EryxAppService } = await import('@main/EryxAppService');
|
||||
const { AryxAppService } = await import('@main/AryxAppService');
|
||||
|
||||
function createProject(overrides?: Partial<ProjectRecord>): ProjectRecord {
|
||||
return {
|
||||
@@ -63,8 +63,8 @@ function createService(
|
||||
options?: {
|
||||
captureRunTurn?: (command: RunTurnCommand) => void;
|
||||
},
|
||||
): InstanceType<typeof EryxAppService> {
|
||||
const service = new EryxAppService();
|
||||
): InstanceType<typeof AryxAppService> {
|
||||
const service = new AryxAppService();
|
||||
const internals = service as unknown as Record<string, unknown>;
|
||||
internals.loadWorkspace = async () => workspace;
|
||||
internals.persistAndBroadcast = async (nextWorkspace: WorkspaceState) => nextWorkspace;
|
||||
@@ -97,7 +97,7 @@ function createService(
|
||||
return service;
|
||||
}
|
||||
|
||||
describe('EryxAppService discovered tooling', () => {
|
||||
describe('AryxAppService discovered tooling', () => {
|
||||
test('allows project-discovered MCP servers to be accepted and used in project sessions', async () => {
|
||||
const workspace = createWorkspaceSeed();
|
||||
const pattern = workspace.patterns.find((candidate) => candidate.mode === 'single');
|
||||
|
||||
@@ -5,8 +5,8 @@ import type { SidecarCapabilities } from '@shared/contracts/sidecar';
|
||||
mock.module('electron', () => ({
|
||||
app: {
|
||||
isPackaged: false,
|
||||
getAppPath: () => 'C:\\workspace\\personal\\repositories\\eryx',
|
||||
getPath: () => 'C:\\workspace\\personal\\repositories\\eryx\\tests\\fixtures',
|
||||
getAppPath: () => 'C:\\workspace\\personal\\repositories\\aryx',
|
||||
getPath: () => 'C:\\workspace\\personal\\repositories\\aryx\\tests\\fixtures',
|
||||
},
|
||||
dialog: {
|
||||
showOpenDialog: async () => ({ canceled: true, filePaths: [] }),
|
||||
@@ -24,7 +24,7 @@ mock.module('keytar', () => ({
|
||||
},
|
||||
}));
|
||||
|
||||
const { EryxAppService } = await import('@main/EryxAppService');
|
||||
const { AryxAppService } = await import('@main/AryxAppService');
|
||||
|
||||
const SIDECAR_STOPPED_BEFORE_COMPLETION_MESSAGE =
|
||||
'The .NET sidecar was stopped before the command completed.';
|
||||
@@ -49,7 +49,7 @@ const CAPABILITIES_FIXTURE: SidecarCapabilities = {
|
||||
};
|
||||
|
||||
function setSidecar(
|
||||
service: InstanceType<typeof EryxAppService>,
|
||||
service: InstanceType<typeof AryxAppService>,
|
||||
describeCapabilities: () => Promise<SidecarCapabilities>,
|
||||
): void {
|
||||
(
|
||||
@@ -74,9 +74,9 @@ function createDeferred<T>() {
|
||||
return { promise, resolve };
|
||||
}
|
||||
|
||||
describe('EryxAppService sidecar capabilities', () => {
|
||||
describe('AryxAppService sidecar capabilities', () => {
|
||||
test('retries describe-capabilities after an intentional sidecar stop', async () => {
|
||||
const service = new EryxAppService();
|
||||
const service = new AryxAppService();
|
||||
let attempts = 0;
|
||||
|
||||
setSidecar(service, async () => {
|
||||
@@ -93,7 +93,7 @@ describe('EryxAppService sidecar capabilities', () => {
|
||||
});
|
||||
|
||||
test('coalesces concurrent capability requests while the cache is empty', async () => {
|
||||
const service = new EryxAppService();
|
||||
const service = new AryxAppService();
|
||||
const deferred = createDeferred<SidecarCapabilities>();
|
||||
let calls = 0;
|
||||
|
||||
|
||||
@@ -7,13 +7,13 @@ import type { SessionRecord } from '@shared/domain/session';
|
||||
import { createWorkspaceSeed, type WorkspaceState } from '@shared/domain/workspace';
|
||||
|
||||
const TIMESTAMP = '2026-03-25T00:00:00.000Z';
|
||||
const SCRATCHPAD_PATH = 'C:\\workspace\\personal\\repositories\\eryx\\scratchpad';
|
||||
const SCRATCHPAD_PATH = 'C:\\workspace\\personal\\repositories\\aryx\\scratchpad';
|
||||
|
||||
mock.module('electron', () => ({
|
||||
app: {
|
||||
isPackaged: false,
|
||||
getAppPath: () => 'C:\\workspace\\personal\\repositories\\eryx',
|
||||
getPath: () => 'C:\\workspace\\personal\\repositories\\eryx\\tests\\fixtures',
|
||||
getAppPath: () => 'C:\\workspace\\personal\\repositories\\aryx',
|
||||
getPath: () => 'C:\\workspace\\personal\\repositories\\aryx\\tests\\fixtures',
|
||||
},
|
||||
dialog: {
|
||||
showOpenDialog: async () => ({ canceled: true, filePaths: [] }),
|
||||
@@ -31,7 +31,7 @@ mock.module('keytar', () => ({
|
||||
},
|
||||
}));
|
||||
|
||||
const { EryxAppService } = await import('@main/EryxAppService');
|
||||
const { AryxAppService } = await import('@main/AryxAppService');
|
||||
|
||||
function createWorkspaceFixture(): {
|
||||
workspace: WorkspaceState;
|
||||
@@ -70,7 +70,7 @@ function createWorkspaceFixture(): {
|
||||
transport: 'local',
|
||||
command: 'node',
|
||||
args: ['server.js', '--stdio'],
|
||||
cwd: 'C:\\workspace\\personal\\repositories\\eryx',
|
||||
cwd: 'C:\\workspace\\personal\\repositories\\aryx',
|
||||
tools: ['git.status'],
|
||||
timeoutMs: 1500,
|
||||
createdAt: TIMESTAMP,
|
||||
@@ -101,8 +101,8 @@ function createService(
|
||||
captureRunTurn?: (command: RunTurnCommand) => void;
|
||||
knownApprovalToolNames?: string[];
|
||||
},
|
||||
): InstanceType<typeof EryxAppService> {
|
||||
const service = new EryxAppService();
|
||||
): InstanceType<typeof AryxAppService> {
|
||||
const service = new AryxAppService();
|
||||
const internals = service as unknown as Record<string, unknown>;
|
||||
internals.loadWorkspace = async () => workspace;
|
||||
internals.persistAndBroadcast = async (nextWorkspace: WorkspaceState) => nextWorkspace;
|
||||
@@ -135,7 +135,7 @@ function createService(
|
||||
return service;
|
||||
}
|
||||
|
||||
describe('EryxAppService scratchpad tooling support', () => {
|
||||
describe('AryxAppService scratchpad tooling support', () => {
|
||||
test('allows scratchpad sessions to save MCP and LSP selections', async () => {
|
||||
const { workspace, pattern, session } = createWorkspaceFixture();
|
||||
const service = createService(workspace, pattern);
|
||||
@@ -189,7 +189,7 @@ describe('EryxAppService scratchpad tooling support', () => {
|
||||
transport: 'local',
|
||||
command: 'node',
|
||||
args: ['server.js', '--stdio'],
|
||||
cwd: 'C:\\workspace\\personal\\repositories\\eryx',
|
||||
cwd: 'C:\\workspace\\personal\\repositories\\aryx',
|
||||
tools: ['git.status'],
|
||||
timeoutMs: 1500,
|
||||
},
|
||||
|
||||
@@ -14,7 +14,7 @@ afterEach(async () => {
|
||||
});
|
||||
|
||||
async function createTempDirectory(): Promise<string> {
|
||||
const directory = await mkdtemp(join(tmpdir(), 'eryx-config-scanner-'));
|
||||
const directory = await mkdtemp(join(tmpdir(), 'aryx-config-scanner-'));
|
||||
temporaryPaths.push(directory);
|
||||
return directory;
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ const spawnedProcesses: FakeChildProcess[] = [];
|
||||
mock.module('electron', () => ({
|
||||
app: {
|
||||
isPackaged: false,
|
||||
getAppPath: () => 'C:\\workspace\\personal\\repositories\\eryx',
|
||||
getAppPath: () => 'C:\\workspace\\personal\\repositories\\aryx',
|
||||
},
|
||||
}));
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@ describe('resolveSidecarProcess', () => {
|
||||
expect(
|
||||
resolveSidecarProcess({
|
||||
isPackaged: false,
|
||||
appPath: 'C:\\workspace\\personal\\repositories\\eryx',
|
||||
resourcesPath: 'C:\\workspace\\personal\\repositories\\eryx\\resources',
|
||||
appPath: 'C:\\workspace\\personal\\repositories\\aryx',
|
||||
resourcesPath: 'C:\\workspace\\personal\\repositories\\aryx\\resources',
|
||||
platform: 'win32',
|
||||
}),
|
||||
).toEqual({
|
||||
@@ -16,11 +16,11 @@ describe('resolveSidecarProcess', () => {
|
||||
args: [
|
||||
'run',
|
||||
'--project',
|
||||
'C:\\workspace\\personal\\repositories\\eryx\\sidecar\\src\\Aryx.AgentHost\\Aryx.AgentHost.csproj',
|
||||
'C:\\workspace\\personal\\repositories\\aryx\\sidecar\\src\\Aryx.AgentHost\\Aryx.AgentHost.csproj',
|
||||
'--',
|
||||
'--stdio',
|
||||
],
|
||||
cwd: 'C:\\workspace\\personal\\repositories\\eryx',
|
||||
cwd: 'C:\\workspace\\personal\\repositories\\aryx',
|
||||
});
|
||||
});
|
||||
|
||||
@@ -28,14 +28,14 @@ describe('resolveSidecarProcess', () => {
|
||||
expect(
|
||||
resolveSidecarProcess({
|
||||
isPackaged: true,
|
||||
appPath: 'C:\\workspace\\personal\\repositories\\eryx\\release\\win-unpacked\\resources\\app',
|
||||
resourcesPath: 'C:\\workspace\\personal\\repositories\\eryx\\release\\win-unpacked\\resources',
|
||||
appPath: 'C:\\workspace\\personal\\repositories\\aryx\\release\\win-unpacked\\resources\\app',
|
||||
resourcesPath: 'C:\\workspace\\personal\\repositories\\aryx\\release\\win-unpacked\\resources',
|
||||
platform: 'win32',
|
||||
}),
|
||||
).toEqual({
|
||||
command: 'C:\\workspace\\personal\\repositories\\eryx\\release\\win-unpacked\\resources\\sidecar\\Aryx.AgentHost.exe',
|
||||
command: 'C:\\workspace\\personal\\repositories\\aryx\\release\\win-unpacked\\resources\\sidecar\\Aryx.AgentHost.exe',
|
||||
args: ['--stdio'],
|
||||
cwd: 'C:\\workspace\\personal\\repositories\\eryx\\release\\win-unpacked\\resources\\sidecar',
|
||||
cwd: 'C:\\workspace\\personal\\repositories\\aryx\\release\\win-unpacked\\resources\\sidecar',
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user