Skip to content

Commit 24b586b

Browse files
authored
Merge pull request #7 from reoring/chore/drop-compat-layer
chore: drop agentcore compatibility layer
2 parents b9d99df + d7001c0 commit 24b586b

66 files changed

Lines changed: 416 additions & 599 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.gitignore‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ dist
55
/agentcore
66
/roboppi
77

8-
# Local AgentCore workflow state
9-
.agentcore-loop/
8+
# Local Roboppi workflow state
9+
.roboppi-loop/
1010

1111
# Local scratch notes (do not commit)
1212
docs/wip/

‎AGENTS.md‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# AGENTS.md
22

3-
This repository ("Roboppi" / package name: `agentcore`) is a Bun + TypeScript (ESM)
3+
This repository ("Roboppi" / package name: `roboppi`) is a Bun + TypeScript (ESM)
44
codebase that implements an execution-control runtime for agentic workers.
55

66
## Build / Lint / Test
@@ -57,11 +57,11 @@ bun test --watch test/unit # watch mode
5757

5858
### Build
5959

60-
Builds a native executable `./agentcore` (gitignored).
60+
Builds a native executable `./roboppi` (gitignored).
6161

6262
```bash
6363
make build # or: bun run build
64-
make install # /usr/local/bin/agentcore
64+
make install # /usr/local/bin/roboppi
6565
make uninstall
6666
```
6767

‎Makefile‎

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
.PHONY: all build test tests test-unit test-integration test-at test-branch test-all typecheck clean install uninstall dev help
33

44
BIN := roboppi
5-
LEGACY_BIN := agentcore
65

76
# Legacy build artifacts (no longer built by default)
87
EXTRA_BINS := roboppi-core roboppi-workflow roboppi-daemon
@@ -20,7 +19,6 @@ all: build ## Build the binary (default)
2019

2120
build: ## Build a single binary (roboppi)
2221
$(BUN) $(BUN_FLAGS) build $(BUN_BUILD_FLAGS) --compile $(SRC) --outfile $(BIN)
23-
@ln -sf $(BIN) $(LEGACY_BIN) 2>/dev/null || cp $(BIN) $(LEGACY_BIN)
2422

2523
test: ## Run all tests
2624
$(BUN) $(BUN_FLAGS) test
@@ -46,14 +44,13 @@ typecheck: ## Run TypeScript type checker
4644
$(BUN) $(BUN_FLAGS) x tsc --noEmit
4745

4846
clean: ## Remove build artifacts
49-
rm -f $(BIN) $(LEGACY_BIN) $(EXTRA_BINS)
47+
rm -f $(BIN) $(EXTRA_BINS)
5048

5149
install: build ## Install binary to /usr/local/bin
5250
install -m 755 $(BIN) /usr/local/bin/$(BIN)
53-
@ln -sf /usr/local/bin/$(BIN) /usr/local/bin/$(LEGACY_BIN) 2>/dev/null || cp /usr/local/bin/$(BIN) /usr/local/bin/$(LEGACY_BIN)
5451

5552
uninstall: ## Remove binary from /usr/local/bin
56-
rm -f /usr/local/bin/$(BIN) /usr/local/bin/$(LEGACY_BIN) $(addprefix /usr/local/bin/,$(EXTRA_BINS))
53+
rm -f /usr/local/bin/$(BIN) $(addprefix /usr/local/bin/,$(EXTRA_BINS))
5754

5855
dev: ## Run in dev mode (no build)
5956
$(BUN) $(BUN_FLAGS) run $(SRC)

‎README.ja.md‎

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@ Roboppi(ろぼっぴ)は、エージェント(worker)の実行を安全
77
Roboppi 自身が「エージェントとして仕事をする」ことは目的にしません。外部の worker CLI(OpenCode / Claude Code / Codex CLI / シェル)に重い作業(編集/コマンド/テスト)を委譲し、Roboppi は安全の不変条件(止める/制限する/観測する/隔離する)を強制します。
88

99
注意: 主な CLI/バイナリ名は `roboppi` です。
10-
- 互換: `agentcore` はレガシー alias として残しています。
11-
- 環境変数/状態ディレクトリ: `ROBOPPI_` / `.roboppi-loop/` を推奨(レガシーの `AGENTCORE_` / `.agentcore-loop/` も引き続き利用可能)。
10+
- 環境変数/状態ディレクトリ: `ROBOPPI_` / `.roboppi-loop/` を使います。
1211

1312
## Roboppiでできること(Capabilities)
1413

@@ -184,7 +183,7 @@ ROBOPPI_ROOT="$ROBOPPI_ROOT" bun run --cwd "$ROBOPPI_ROOT" src/workflow/run.ts \
184183

185184
注意:
186185

187-
- workflow は target workspace 内に `.roboppi-loop/` と `context/` を作ります(通常は gitignore 推奨。レガシーの `.agentcore-loop/` も引き続き利用可能)。
186+
- workflow は target workspace 内に `.roboppi-loop/` と `context/` を作ります(通常は gitignore 推奨)。
188187
- PR 作成は `.roboppi-loop/enable_pr` による opt-in です。
189188

190189
## Workflow YAML の最小例
@@ -264,9 +263,9 @@ git repo に対する workflow 実行向けに、base branch 解決 / Branch Loc
264263
supervised 実行では runner/daemon が Core 子プロセスを起動し、IPC 経由で step を委譲します。
265264

266265
- 既定: 対話実行は stdio、非対話実行は socket transport が既定
267-
- transport 切替: `AGENTCORE_SUPERVISED_IPC_TRANSPORT=stdio|socket|tcp`
268-
- IPC デバッグ: `AGENTCORE_IPC_TRACE=1`
269-
- request timeout 調整: `AGENTCORE_IPC_REQUEST_TIMEOUT=2m`(または `AGENTCORE_IPC_REQUEST_TIMEOUT_MS=120000`)
266+
- transport 切替: `ROBOPPI_SUPERVISED_IPC_TRANSPORT=stdio|socket|tcp`
267+
- IPC デバッグ: `ROBOPPI_IPC_TRACE=1`
268+
- request timeout 調整: `ROBOPPI_IPC_REQUEST_TIMEOUT=2m`(または `ROBOPPI_IPC_REQUEST_TIMEOUT_MS=120000`)
270269

271270
supervised 実行を無効化(direct 実行):
272271

‎README.md‎

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@ Roboppi (ろぼっぴ, pronounced "roh-boh-pee") is an execution-control runtime
1111
It does not try to be "the agent". It enforces safety invariants around external worker CLIs (OpenCode / Claude Code / Codex CLI / plain shell), so your automation stops when it should, stays within budgets, and leaves a trail you can audit.
1212

1313
Note: the primary CLI/binary name is `roboppi`.
14-
- Compatibility: `agentcore` remains as a legacy alias.
15-
- Env vars/state dirs: prefer `ROBOPPI_` / `.roboppi-loop/` (legacy `AGENTCORE_` / `.agentcore-loop/` are still accepted).
14+
- Env vars/state dirs: use `ROBOPPI_` / `.roboppi-loop/`.
1615

1716
## What Roboppi Can Do (Capabilities)
1817

@@ -191,7 +190,7 @@ ROBOPPI_ROOT="$ROBOPPI_ROOT" bun run --cwd "$ROBOPPI_ROOT" src/workflow/run.ts \
191190

192191
Notes:
193192

194-
- The workflow writes state/artifacts under `.roboppi-loop/` and `context/` inside the target workspace (typically gitignored; legacy `.agentcore-loop/` is still accepted).
193+
- The workflow writes state/artifacts under `.roboppi-loop/` and `context/` inside the target workspace (typically gitignored).
195194
- PR creation is opt-in via `.roboppi-loop/enable_pr`.
196195

197196
## Workflow YAML At A Glance
@@ -273,9 +272,9 @@ Docs:
273272
Workflows/daemon run supervised by default. In supervised mode, the runner starts a Core child process and delegates steps over IPC.
274273

275274
- Default: interactive runs typically use stdio; non-interactive runs default to a socket transport.
276-
- Override transport: `AGENTCORE_SUPERVISED_IPC_TRANSPORT=stdio|socket|tcp`
277-
- Debug IPC: `AGENTCORE_IPC_TRACE=1`
278-
- Tune request timeouts: `AGENTCORE_IPC_REQUEST_TIMEOUT=2m` (or `AGENTCORE_IPC_REQUEST_TIMEOUT_MS=120000`)
275+
- Override transport: `ROBOPPI_SUPERVISED_IPC_TRANSPORT=stdio|socket|tcp`
276+
- Debug IPC: `ROBOPPI_IPC_TRACE=1`
277+
- Tune request timeouts: `ROBOPPI_IPC_REQUEST_TIMEOUT=2m` (or `ROBOPPI_IPC_REQUEST_TIMEOUT_MS=120000`)
279278

280279
Disable supervised mode:
281280

‎bun.lock‎

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎docs/daemon-design.md‎

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -820,23 +820,23 @@ Template variables available in `evaluate` / `analyze` instructions:
820820

821821
```bash
822822
# start daemon
823-
agentcore daemon start <daemon.yaml> [--verbose]
823+
roboppi daemon start <daemon.yaml> [--verbose]
824824

825825
# check daemon status (from another terminal)
826-
agentcore daemon status [--state-dir <dir>]
826+
roboppi daemon status [--state-dir <dir>]
827827

828828
# manual trigger (debug)
829-
agentcore daemon trigger <trigger_id> [--state-dir <dir>]
829+
roboppi daemon trigger <trigger_id> [--state-dir <dir>]
830830

831831
# pause/resume trigger
832-
agentcore daemon pause <trigger_id>
833-
agentcore daemon resume <trigger_id>
832+
roboppi daemon pause <trigger_id>
833+
roboppi daemon resume <trigger_id>
834834

835835
# show execution history
836-
agentcore daemon history [--trigger <trigger_id>] [--limit 10]
836+
roboppi daemon history [--trigger <trigger_id>] [--limit 10]
837837

838838
# stop daemon
839-
agentcore daemon stop [--state-dir <dir>]
839+
roboppi daemon stop [--state-dir <dir>]
840840
```
841841

842842
---
@@ -945,7 +945,7 @@ Log tags:
945945
- [ ] TriggerEngine (filter + debounce + cooldown)
946946
- [ ] DaemonStateStore (file-based persistence)
947947
- [ ] Daemon class (event loop + graceful shutdown)
948-
- [ ] CLI: `agentcore daemon start`
948+
- [ ] CLI: `roboppi daemon start`
949949

950950
### Phase 2: Expand event sources
951951

‎docs/design.md‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -121,19 +121,19 @@ Workers provide execution environments and capabilities. AgentCore calls them th
121121
```
122122
Scheduler (parent)
123123
|
124-
+-- spawn(agentcore, args...)
124+
+-- spawn(roboppi, args...)
125125
+-- JSON Lines IPC over stdin/stdout
126126
+-- periodic heartbeat/health monitoring
127127
|
128-
+-> AgentCore (child)
128+
+-> Roboppi Core (child)
129129
+-- processes externally submitted jobs
130130
+-- issues permits and delegates to workers
131131
+-- observes, limits, cuts off, escalates
132132
```
133133

134-
The Scheduler spawns AgentCore as a child process, keeps stdin/stdout open, and uses **JSON Lines** for bidirectional communication. It monitors response latency via heartbeat and checks memory/CPU thresholds periodically.
134+
The Scheduler spawns Roboppi Core as a child process, keeps stdin/stdout open, and uses **JSON Lines** for bidirectional communication. It monitors response latency via heartbeat and checks memory/CPU thresholds periodically.
135135

136-
AgentCore behaves as a runtime that processes "jobs given from outside", issues Permits, and spawns/uses workers as needed.
136+
Roboppi Core behaves as a runtime that processes "jobs given from outside", issues Permits, and spawns/uses workers as needed.
137137

138138
### 3.2 Crash / hang handling (Supervisor policy)
139139

‎docs/guide/daemon.md‎

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -133,9 +133,9 @@ triggers: # trigger definitions (event -> workflow)
133133
If your workflows use `step.agent`, provide an agent catalog to the daemon:
134134

135135
- `agents_file`: a default catalog path for the daemon (relative paths are resolved from `workspace`)
136-
- `AGENTCORE_AGENTS_FILE`: you can also set this via environment variables (or per-trigger via `triggers.<id>.context.env`) as a colon-separated list of YAML paths
136+
- `ROBOPPI_AGENTS_FILE`: you can also set this via environment variables (or per-trigger via `triggers.<id>.context.env`) as a colon-separated list of YAML paths
137137

138-
When multiple catalogs are provided, later sources override earlier ones (so a per-trigger `context.env.AGENTCORE_AGENTS_FILE` can override the daemon-wide catalog).
138+
When multiple catalogs are provided, later sources override earlier ones (so a per-trigger `context.env.ROBOPPI_AGENTS_FILE` can override the daemon-wide catalog).
139139

140140
See also: `docs/guides/agents.md`.
141141

@@ -703,8 +703,8 @@ name: simple-cron
703703
version: "1"
704704
description: "A simple daemon that runs health checks every 30 seconds"
705705

706-
workspace: "/tmp/agentcore-daemon-simple"
707-
state_dir: "/tmp/agentcore-daemon-simple/.daemon-state"
706+
workspace: "/tmp/roboppi-daemon-simple"
707+
state_dir: "/tmp/roboppi-daemon-simple/.daemon-state"
708708

709709
events:
710710
tick:
@@ -734,8 +734,8 @@ Fires every 5 minutes via cron. An evaluate gate checks whether there are new co
734734
```yaml
735735
name: smart-reviewer
736736
version: "1"
737-
workspace: "/tmp/agentcore-daemon-reviewer"
738-
state_dir: "/tmp/agentcore-daemon-reviewer/.daemon-state"
737+
workspace: "/tmp/roboppi-daemon-reviewer"
738+
state_dir: "/tmp/roboppi-daemon-reviewer/.daemon-state"
739739
max_concurrent_workflows: 1
740740

741741
events:
@@ -800,8 +800,8 @@ Detect TypeScript file changes and run tests automatically.
800800
```yaml
801801
name: file-watcher
802802
version: "1"
803-
workspace: "/tmp/agentcore-daemon-watcher"
804-
state_dir: "/tmp/agentcore-daemon-watcher/.daemon-state"
803+
workspace: "/tmp/roboppi-daemon-watcher"
804+
state_dir: "/tmp/roboppi-daemon-watcher/.daemon-state"
805805
806806
events:
807807
src-change:
@@ -838,8 +838,8 @@ Use interval, cron, and command event sources together and start different workf
838838
```yaml
839839
name: multi-trigger
840840
version: "1"
841-
workspace: "/tmp/agentcore-daemon-multi"
842-
state_dir: "/tmp/agentcore-daemon-multi/.daemon-state"
841+
workspace: "/tmp/roboppi-daemon-multi"
842+
state_dir: "/tmp/roboppi-daemon-multi/.daemon-state"
843843
max_concurrent_workflows: 2
844844
845845
events:

‎docs/guide/quickstart.md‎

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# AgentCore Quickstart
1+
# Roboppi Quickstart
22

3-
AgentCore is an execution-control runtime for AI agent systems. It provides safe execution control via Permits, failure cut-off via Circuit Breakers, and delegation of actual work to external Workers.
3+
Roboppi is an execution-control runtime for AI agent systems. It provides safe execution control via Permits, failure cut-off via Circuit Breakers, and delegation of actual work to external Workers.
44

55
## Prerequisites
66

@@ -19,22 +19,22 @@ Optional (if you plan to use them as workers):
1919
## Install
2020

2121
```bash
22-
git clone <repository-url> agentcore
23-
cd agentcore
22+
git clone <repository-url> roboppi
23+
cd roboppi
2424
bun install
2525
```
2626

2727
## Build
2828

2929
```bash
30-
make # build a single binary -> ./roboppi (+ ./agentcore alias)
30+
make # build a single binary -> ./roboppi
3131
```
3232

3333
Sanity check:
3434

3535
```bash
36-
./agentcore --version
37-
./agentcore --help
36+
./roboppi --version
37+
./roboppi --help
3838
```
3939

4040
Other make targets:
@@ -48,23 +48,23 @@ make install # install to /usr/local/bin
4848

4949
---
5050

51-
## Usage 1: One-shot execution with `agentcore run`
51+
## Usage 1: One-shot execution with `roboppi run`
5252

5353
Use the `run` subcommand to delegate a task to a Worker using only CLI flags.
5454

5555
```bash
5656
# Generate files with OpenCode
57-
./agentcore run --worker opencode --workspace /tmp/demo "Create hello.ts"
57+
./roboppi run --worker opencode --workspace /tmp/demo "Create hello.ts"
5858

5959
# Fix tests with Claude Code
60-
./agentcore run --worker claude-code --workspace ./my-project \
60+
./roboppi run --worker claude-code --workspace ./my-project \
6161
--capabilities EDIT,RUN_TESTS "Fix the failing tests"
6262

6363
# Refactor with Codex CLI
64-
./agentcore run --worker codex --workspace ./src "Refactor this function"
64+
./roboppi run --worker codex --workspace ./src "Refactor this function"
6565

6666
# You can also set timeouts and budgets
67-
./agentcore run --worker opencode --workspace /tmp/demo \
67+
./roboppi run --worker opencode --workspace /tmp/demo \
6868
--timeout 60000 --concurrency 5 "Write a README for this repo"
6969
```
7070

@@ -77,20 +77,20 @@ Use the `run` subcommand to delegate a task to a Worker using only CLI flags.
7777
| `--capabilities <csv>` | `READ,EDIT,RUN_TESTS,RUN_COMMANDS` | `EDIT` |
7878
| `--timeout <ms>` | task timeout | `120000` |
7979

80-
Internally, AgentCore checks PermitGate -> CircuitBreaker -> ExecutionBudget before delegating to the worker.
80+
Internally, Roboppi checks PermitGate -> CircuitBreaker -> ExecutionBudget before delegating to the worker.
8181

8282
---
8383

8484
## Usage 2: IPC server mode
8585

86-
If you run `agentcore` with no subcommand, it starts in IPC server mode. A Scheduler or custom driver can talk to it over JSON Lines.
86+
If you run `roboppi` with no subcommand, it starts in IPC server mode. A Scheduler or custom driver can talk to it over JSON Lines.
8787

8888
```bash
8989
# Start with defaults
90-
./agentcore
90+
./roboppi
9191

9292
# Start with custom settings
93-
./agentcore --concurrency 20 --rps 100 --log-level debug
93+
./roboppi --concurrency 20 --rps 100 --log-level debug
9494
```
9595

9696
Shared options (also available in `run` mode):
@@ -111,7 +111,7 @@ Shared options (also available in `run` mode):
111111
### Example: submit a job via JSON Lines
112112

113113
```bash
114-
echo '{"type":"submit_job","requestId":"req-1","job":{"jobId":"job-001","type":"LLM","priority":{"value":1,"class":"INTERACTIVE"},"payload":{"prompt":"hello"},"limits":{"timeoutMs":5000,"maxAttempts":3},"context":{"traceId":"t-1","correlationId":"c-1"}}}' | ./agentcore 2>/dev/null
114+
echo '{"type":"submit_job","requestId":"req-1","job":{"jobId":"job-001","type":"LLM","priority":{"value":1,"class":"INTERACTIVE"},"payload":{"prompt":"hello"},"limits":{"timeoutMs":5000,"maxAttempts":3},"context":{"traceId":"t-1","correlationId":"c-1"}}}' | ./roboppi 2>/dev/null
115115
```
116116

117117
Output (returned on stdout as JSON Lines):
@@ -330,7 +330,7 @@ OpenCode generates files and the result returns `SUCCEEDED`.
330330

331331
## Usage 5: Start with a Scheduler (full configuration)
332332

333-
The Scheduler launches and supervises AgentCore as a child process. This includes a job queue, dedup control, retries, and a DLQ.
333+
The Scheduler launches and supervises Roboppi Core as a child process. This includes a job queue, dedup control, retries, and a DLQ.
334334

335335
```typescript
336336
import { Scheduler } from "./src/scheduler/index.js";
@@ -342,7 +342,7 @@ const scheduler = new Scheduler({
342342
retry: { baseDelayMs: 1000, maxDelayMs: 30000, maxAttempts: 3 },
343343
});
344344

345-
// Start AgentCore as a child process
345+
// Start Roboppi Core as a child process
346346
await scheduler.start();
347347

348348
// Submit a job
@@ -401,7 +401,7 @@ roboppi workflow my-workflow.yaml --verbose
401401
# (dev) bun run src/workflow/run.ts my-workflow.yaml --verbose
402402
```
403403

404-
For each step, AgentCore requests a Permit, delegates to the worker, and collects results. If a step fails, it aborts depending on policy.
404+
For each step, Roboppi Core requests a Permit, delegates to the worker, and collects results. If a step fails, it aborts depending on policy.
405405

406406
### Reuse worker settings with agent catalogs
407407

@@ -481,7 +481,7 @@ See the [Daemon guide](./daemon.md) for details.
481481
| Scheduler (parent process) |
482482
| JobQueue / InFlightRegistry / RetryPolicy |
483483
| +-----------------------------------------+ |
484-
| | AgentCore (child process) | |
484+
| | Roboppi Core (child process) | |
485485
| | PermitGate / CircuitBreaker | |
486486
| | Watchdog / EscalationManager | |
487487
| | +-----------------------------------+ | |

0 commit comments

Comments
 (0)