Skip to content

Latest commit

 

History

History
45 lines (34 loc) · 2.93 KB

File metadata and controls

45 lines (34 loc) · 2.93 KB

@maka/runtime

@maka/runtime is Maka's pure-Node agent runtime. It owns model/backend execution, session sandbox-boundary control flow, event projection, context handling, recovery, and sandbox-aware workspace execution. Product shells compose it; they do not reimplement its loop.

Public seam

The package root barrel and the subpaths declared in package.json are supported public APIs. Do not import undeclared internal source paths from another package. The main integration points are:

  • SessionManager for session and turn orchestration.
  • BackendRegistry and AgentBackend for backend selection.
  • AiSdkBackend for the shipped backend implementation. FakeBackend is test-only: it lives under test-only/, is exported as @maka/runtime/test-only/fake-backend, and release packaging drops that directory, so no production module may import it. Tests and the Desktop E2E run reach it through the composition's primaryBackendFactory seam.
  • Session execution-boundary APIs for managed sandbox expansion and explicit bypass.
  • buildBuiltinTools() and the workspace executor interfaces for tool composition.
  • RuntimeKernel, runtime events, projections, and recovery helpers for execution lifecycle.

Desktop composition lives in apps/desktop/src/main/main.ts. Other clients execute Maka through Runtime Host rather than composing Runtime directly.

Extension rules

  • Add backend behavior behind AgentBackend and register it through the existing registry.
  • Add tools through the builtin/tool composition seams; keep filesystem and shell effects behind WorkspaceExecutor.
  • Put shared pure contracts in packages/core and interactive Runtime state in the SQLite control plane owned by packages/storage.
  • Expose supported package APIs through the root barrel or a declared package.json subpath rather than importing internal files from another package.
  • Keep provider credentials and Electron IPC outside this package. The product shell resolves credentials and passes only the dependencies required for execution.

For the system-level model and code-reading map, start with the root ARCHITECTURE.md. Sandbox-specific contracts live in src/sandbox/README.md.