acp-runtime
The ACP runtime is the domain service that serves the ACP API contract. It owns the host-scoped dependencies needed to run provider ACP sessions, but it should…
All paths are relative to `apps/emdash-desktop/`.
How it fires
How this agent gets triggered: by you, by Claude, or both.
Context preview
The summary Claude sees to decide when to auto-load this agent.
All paths are relative to `apps/emdash-desktop/`.
All paths are relative to `apps/emdash-desktop/`.
creates the app store scope, then mounts React
(`seedWireConnection` / `getWireConnection` / `domainClient`); every slice exposes a typed domain client from its `api/` built on `domainClient`
contributed by slices (`contributions/views.ts`) via `defineView` from `src/core/primitives/views/`
`src/core/features/workbench/browser/home-view.tsx`)
Modal and view registration are manifest-owned, not shell-owned: `src/core/manifests/browser/modal-catalog.ts` and `src/core/manifests/browser/view-catalog.ts` aggregate slice contributions.
Feature-owned React components, hooks, and MobX stores live beside their portable API and Node implementation. Major browser slices include `tasks`, `projects`, `conversations`, `automations`, `browser`, `integrations`, `settings`, `skills`, `mcp`, and `library`. Workbench-owned tabs, sidebar, command palette, and onboarding UI live under `src/core/features/workbench/browser/`. Cross-slice task-view lifecycle and workspace composition live in `src/core/features/workbench/api/browser/task-composition.ts` and `src/core/features/workbench/browser/task-composition-state.ts`; task, project, and workspace stores expose feature-owned children through scoped-store tokens.
Task children have two explicit lifetimes: lightweight persistent stores survive session teardown for as long as the task row exists (`task-persistent-stores.ts`), while operational task stores are disposed when the task session is torn down (`task-scoped-stores.ts`).
The Tasks slice owns current-task workspace activation in its app-scoped `TaskActivationCoordinator`. It derives activation from navigation, Project context hydration, Task state, and Host generation readiness. Views and navigation handlers only express which Task is current; they do not opportunistically provision it. Explicit Retry and Re-provision actions remain direct user commands.
Feature views, modals, and task tabs are exposed through `contributions/` and aggregated by `src/core/manifests/browser/browser-contributions.ts` and `src/core/manifests/browser/task-tab-contributions.ts`.
The command palette uses the same static contribution model. Owning slices export `PaletteProviderDef` arrays from `contributions/browser/`, and `src/core/manifests/browser/palette-provider-catalog.ts` aggregates the five providers for commands, tasks, conversations, files, and projects. The workbench modal only renders `PaletteController` output. Argumentless commands opt in separately through `CommandPaletteItemDef` contributions aggregated by `src/core/manifests/shared/command-palette-catalog.ts`; command matching stays in the renderer, while task, conversation, and project providers request kind-filtered candidates through the search slice.
`src/renderer/lib/` is a thin host shell; portable browser infrastructure lives in `src/core/primitives/`.
renderer-internal aggregate Wire client (`desktop-wire-client.ts`); slices use their own domain clients instead
definitions, store, and close guards live in `src/core/primitives/modals/react/`
scope (`src/core/manifests/browser/app-scoped-stores.ts`)
Navigation lives in `src/core/primitives/navigation/`; commands and the palette live in `src/core/primitives/commands/`, `src/core/primitives/view-scopes/`, and `src/core/primitives/palette/`. The PTY frontend is owned by the terminals slice (`src/core/features/terminals/`). Monaco, file rendering, file-tree projection, and renderer-facing file runtime access are owned by `src/core/features/editor/browser/`.
`getPathForFile`; keep application traffic on Wire.
Emdash is the Open-Source Agentic Development Environment (🧡 YC W26). Run multiple coding agents in parallel. Use any provider.
Repo: generalaction/emdash
The ACP runtime is the domain service that serves the ACP API contract. It owns the host-scoped dependencies needed to run provider ACP sessions, but it should…
This page defines the target organization of `packages/core/src/`. Core is organized by module type so that shared domain APIs and their platform…
Git is split into a transport contract and a host-scoped runtime. Renderer, desktop, and workspace-server code share the Wire vocabulary without importing Git…
The main process is organized into domain modules under `src/main/core/`. Each domain typically has a `controller.ts` (RPC handlers) and service/implementation…
`@emdash/core/primitives/path/api` is the source of truth for portable file identity and lexical path operations. The detailed package docs live in…