mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-26 10:21:52 +00:00
* 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
147 lines
1.8 KiB
Markdown
147 lines
1.8 KiB
Markdown
# 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
|
|
|
|
```ts
|
|
{
|
|
id: string,
|
|
kind: "install" | "update" | "restore" | null,
|
|
}
|
|
```
|
|
|
|
#### response
|
|
|
|
`null`
|
|
|
|
### exit
|
|
|
|
Shutdown runtime and optionally run exit hooks for a target version.
|
|
|
|
#### params
|
|
|
|
```ts
|
|
{
|
|
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
|
|
|
|
```ts
|
|
{
|
|
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
|
|
|
|
```ts
|
|
{
|
|
id: string,
|
|
procedure: string,
|
|
input: any,
|
|
timeout: number | null,
|
|
}
|
|
```
|
|
|
|
#### response
|
|
|
|
`any`
|
|
|
|
### callback
|
|
|
|
Handle a callback from an effect.
|
|
|
|
#### params
|
|
|
|
```ts
|
|
{
|
|
id: number,
|
|
args: any[],
|
|
}
|
|
```
|
|
|
|
#### response
|
|
|
|
`null` (no response sent)
|
|
|
|
### eval
|
|
|
|
Evaluate a script in the runtime context. Used for debugging.
|
|
|
|
#### params
|
|
|
|
```ts
|
|
{
|
|
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 |
|