Skip to content

Design: runtime package boundary #105

Description

@tnez

Parent: #103

Context

The runtime package effort needs a crisp boundary before implementation starts.

The motivating product story is that a user should be able to install @tnezdev/agentic, initialize a workspace, add a runtime, and run the workspace:

agentic runtime add local
agentic runtime init local
agentic runtime run <target>

At the same time, core Agentic should remain runtime-agnostic. It should not become the model loop, terminal UI, scheduler, daemon, deployment system, or session store.

Goal

Write the design boundary for runtime packages: what core owns, what runtime packages own, how the CLI discovers/delegates to them, and what minimum shared types/config are required.

Questions to settle

  1. What is the minimal runtime package manifest shape?
  2. What commands does core implement directly versus delegate?
  3. What is the config shape for installed/enabled runtimes?
  4. How does agentic runtime add local resolve to @tnezdev/agentic-runtime-local?
  5. What package manager behavior is acceptable for install (bun, npm, pnpm) in the first slice?
  6. Should runtime commands be capability-based rather than assuming every runtime supports start, stop, deploy, etc.?
  7. What shared RuntimeContext does a runtime package receive?
  8. How does the local runtime see personas, workflows, skills, artifacts, memory, and config?
  9. Where do lightweight invocation records fit, if at all?
  10. What explicit non-goals keep core from becoming a harness?

Expected design stance

Start from these assumptions unless the design discovers a reason to change them:

  • Public runtime names are targets like local and later cloudflare.
  • Pi is the implementation detail for the local runtime, not the public runtime name.
  • Core owns CLI front door, workspace conventions, primitive APIs, and runtime package discovery/delegation.
  • Runtime packages own harness/platform integration.
  • Core does not own harness sessions.
  • Runtime invocation metadata is allowed; a full session primitive is not part of the first slice.

Deliverable

A design note, issue comment, or checked-in artifact that future implementation issues can point to.

The deliverable should include at least:

  • Proposed runtime package manifest/interface.
  • Proposed agentic runtime ... command behavior.
  • Proposed runtime config shape.
  • Core/runtime responsibility table.
  • Explicit non-goals.
  • Open questions deferred to local runtime implementation.

Non-goals

  • Do not implement the runtime CLI here.
  • Do not create the local runtime package here.
  • Do not design Cloudflare deeply here.
  • Do not add a session primitive here.

Acceptance

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions