Files
start-os/container-runtime/RPCSpec.md
Aiden McClelland f2142f0bb3 add documentation for ai agents (#3115)
* add documentation for ai agents

* docs: consolidate CLAUDE.md and CONTRIBUTING.md, add style guidelines

- Refactor CLAUDE.md to reference CONTRIBUTING.md for build/test/format info
- Expand CONTRIBUTING.md with comprehensive build targets, env vars, and testing
- Add code style guidelines section with conventional commits
- Standardize SDK prettier config to use single quotes (matching web)
- Add project-level Claude Code settings to disable co-author attribution

* style(sdk): apply prettier with single quotes

Run prettier across sdk/base and sdk/package to apply the
standardized quote style (single quotes matching web).

* docs: add USER.md for per-developer TODO filtering

- Add agents/USER.md to .gitignore (contains user identifier)
- Document session startup flow in CLAUDE.md:
  - Create USER.md if missing, prompting for identifier
  - Filter TODOs by @username tags
  - Offer relevant TODOs on session start

* docs: add i18n documentation task to agent TODOs

* docs: document i18n ID patterns in core/

Add agents/i18n-patterns.md covering rust-i18n setup, translation file
format, t!() macro usage, key naming conventions, and locale selection.
Remove completed TODO item and add reference in CLAUDE.md.

* chore: clarify that all builds work on any OS with Docker
2026-02-06 00:10:16 +01:00

1.8 KiB

Container RPC Server Specification

The container runtime exposes a JSON-RPC server over a Unix socket at /media/startos/rpc/service.sock.

Methods

init

Initialize the runtime and system.

params

{
  id: string,
  kind: "install" | "update" | "restore" | null,
}

response

null

exit

Shutdown runtime and optionally run exit hooks for a target version.

params

{
  id: string,
  target: string | null,  // ExtendedVersion or VersionRange
}

response

null

start

Run main method if not already running.

params

None

response

null

stop

Stop main method by sending SIGTERM to child processes, and SIGKILL after timeout.

params

None

response

null

execute

Run a specific package procedure.

params

{
  id: string,           // event ID
  procedure: string,    // JSON path (e.g., "/backup/create", "/actions/{name}/run")
  input: any,
  timeout: number | null,
}

response

any

sandbox

Run a specific package procedure in sandbox mode. Same interface as execute.

UNIMPLEMENTED: this feature is planned but does not exist

params

{
  id: string,
  procedure: string,
  input: any,
  timeout: number | null,
}

response

any

callback

Handle a callback from an effect.

params

{
  id: number,
  args: any[],
}

response

null (no response sent)

eval

Evaluate a script in the runtime context. Used for debugging.

params

{
  script: string,
}

response

any

Procedures

The execute and sandbox methods route to procedures based on the procedure path:

Procedure Description
/backup/create Create a backup
/actions/{name}/getInput Get input spec for an action
/actions/{name}/run Run an action with input