Skip to content
Agent Workspaces
Agent

path-system

`@emdash/core/primitives/path/api` is the source of truth for portable file identity and lexical path operations. The detailed package docs live in [`packages/core/docs/path/README.md`](../../packages/core/docs/path/README.md).

From plugin
emdash
6.2k33 skills33 agents

Agent definition

path-system.md

Path System

`@emdash/core/primitives/path/api` is the source of truth for portable file identity and lexical path operations. The detailed package docs live in [`packages/core/docs/path/README.md`](../../packages/core/docs/path/README.md).

Ownership

  • `packages/core/src/path/` owns pure structured path primitives, resource URI

encoding, and comparison keys.

  • Desktop placement resolution owns repository and worktree location policy. It combines the target

host's home directory from `files.getHomeDir`, desktop settings, per-project overrides, and UI input, then sends absolute paths to the host runtime.

  • Repository destinations default to `~/emdash/repositories/<name>` with numeric suffix allocation.

Worktree pools default to `~/emdash/worktrees/<repo-basename>-<hash8(repo-path)>`; the workspace planner adds the sanitized branch leaf.

  • Runtime and app layers own host resolution, native string conversion,

filesystem I/O, realpath checks, authorization, and persistence migrations.

  • Renderer code should eventually prefer `ResourceUri` or structured refs over

raw absolute strings, but existing consumers are not migrated by the foundation module.

Representation Rules

  • Use `HostFileRef` for a full file address on a host.
  • Use `ScopedPath` for root-relative operations such as Git paths, watcher

events, tree entries, and bulk calls.

  • Use `ResourceUri` for serialized identity.
  • Use `ResourceKey` for in-memory dedupe and maps.
  • Use explicit `PathProfile` semantics instead of `node:path` behavior when

interpreting cross-host paths.

Future Adoption Map

  • Core `files` path helpers can delegate lexical operations to

`@emdash/core/primitives/path/api`.

  • Desktop `RuntimePath` and SSH path helpers can become adapters around

structured path parsing/formatting.

  • Git models can represent repo-relative file coordinates as

`PortableRelativePath`.

  • fs-watch can normalize native events into `ScopedPath` before batching and

coalescing.

  • workspace-server schemas can move from documented string conventions to

structured path schemas.

  • Renderer tabs, tree nodes, Monaco models, comments, and view-state snapshots

can migrate from raw path strings to `ResourceUri`.

Do not add filesystem I/O, `realpath()`, host registry state, or app-specific authorization to `packages/core/src/path/`.

Read more
@generalaction
Ships withemdash

Emdash is the Open-Source Agentic Development Environment (🧡 YC W26). Run multiple coding agents in parallel. Use any provider.

Stars on GitHub

Momentum

stars in total
6.2k
Star history of generalaction/emdash on GitHub, a chart by star-history.com

Other agents on emdash.

acp-runtime

acp-runtime

Agent

The ACP runtime is the domain service that serves the ACP API contract. It owns the host-scoped dependencies needed to run…

core-modules

core-modules

Agent

This page defines the target organization of `packages/core/src/`. Core is organized by module type so that shared domain APIs…

git-runtime

git-runtime

Agent

Git is split into a transport contract and a host-scoped runtime. Renderer, desktop, and workspace-server code share the Wire…

main-process

main-process

Agent

The main process is organized into domain modules under `src/main/core/`. Each domain typically has a `controller.ts` (RPC…

More agents from other plugins.

api-builder

api-builder

Agent

Deprecated placeholder. Do not use; follow root AGENTS.md and package instructions instead.

happier2d2.2k
@happier-dev@happier-devInstall Agent

Questions about path-system.

Which coding agents can use path-system?
path-system installs in Claude Code and Cursor: each loads subagents from .claude/agents, so copy the file there. Flowy's auto-invocation runs in Claude Code only.