From 4a324d841eed82656737783184895b974d61e431 Mon Sep 17 00:00:00 2001 From: kurihada Date: Fri, 20 Mar 2026 14:46:04 +0800 Subject: [PATCH] refactor(monorepo): rename operator api runtime --- apps/web/src/features/operator-console.tsx | 6 +- docs/implementation-roadmap.md | 34 +++++----- .../rename-orchd-runtime-to-operator-api.md | 59 ++++++++++++++++++ docs/skill-workspace-monorepo.md | 14 ++--- docs/web-product-monorepo.md | 20 +++--- go.work | 2 +- .../cmd/operator-api}/main.go | 2 +- .../{orchd-runtime => operator-api}/go.mod | 2 +- .../{orchd-runtime => operator-api}/go.sum | 0 .../internal/app/web.go | 2 +- .../internal/httpapi/response.go | 0 .../internal/httpapi/router.go | 2 +- .../internal/httpapi/router_test.go | 2 +- .../internal/query/read_service.go | 0 .../server/execute.go | 8 +-- skills/council-review/assets/orch | Bin 10899218 -> 10899218 bytes skills/inbox/assets/inbox | Bin 10371506 -> 10371506 bytes skills/orch/assets/orch | Bin 10899218 -> 10899218 bytes skills/repo-memory/assets/briefdb | Bin 7498306 -> 7498306 bytes 19 files changed, 106 insertions(+), 47 deletions(-) create mode 100644 docs/roadmaps/archive/rename-orchd-runtime-to-operator-api.md rename packages/{orchd-runtime/cmd/orchd => operator-api/cmd/operator-api}/main.go (65%) rename packages/{orchd-runtime => operator-api}/go.mod (51%) rename packages/{orchd-runtime => operator-api}/go.sum (100%) rename packages/{orchd-runtime => operator-api}/internal/app/web.go (94%) rename packages/{orchd-runtime => operator-api}/internal/httpapi/response.go (100%) rename packages/{orchd-runtime => operator-api}/internal/httpapi/router.go (97%) rename packages/{orchd-runtime => operator-api}/internal/httpapi/router_test.go (98%) rename packages/{orchd-runtime => operator-api}/internal/query/read_service.go (100%) rename packages/{orchd-runtime => operator-api}/server/execute.go (87%) diff --git a/apps/web/src/features/operator-console.tsx b/apps/web/src/features/operator-console.tsx index 69982ef..aeed3ba 100644 --- a/apps/web/src/features/operator-console.tsx +++ b/apps/web/src/features/operator-console.tsx @@ -107,7 +107,7 @@ export function RunsPage() { ) : runsQuery.isError ? ( void runsQuery.refetch()} title="Unable to load orchestration runs" /> @@ -186,7 +186,7 @@ export function BlockedQueuePage() { ) : blockedQuery.isError ? ( void blockedQuery.refetch()} title="Unable to load the blocked queue" /> @@ -465,7 +465,7 @@ export function ThreadTimelinePage({ threadId }: { threadId: string }) { if (threadQuery.isError) { return ( void threadQuery.refetch()} title={`Unable to load thread ${threadId}`} /> diff --git a/docs/implementation-roadmap.md b/docs/implementation-roadmap.md index 09fe02a..e722899 100644 --- a/docs/implementation-roadmap.md +++ b/docs/implementation-roadmap.md @@ -30,17 +30,17 @@ As of now: - the original five `docs/tests/orch-skill/` cases also include recorded real subagent-forward runs captured on `2026-03-19`, with spawned leader and worker agents using the packaged `skills/orch/` and `skills/inbox/` bundles - a council-review skill forward-test plan directory now exists under `docs/tests/council-review-skill/`, with a shared execution contract and nine council workflow scenarios covering end-to-end flow, unanimous-only defaults, timeout/before-tally errors, explicit minority reporting, invalid report filters, strict tally semantics, malformed reviewer JSON, and target-file inputs - an execution-roadmap workflow now exists under `docs/roadmaps/active/` and `docs/roadmaps/archive/` for agent-level work traces and completion archives -- a forward-looking web product monorepo plan now exists under `docs/web-product-monorepo.md`, defining the recommended React frontend, `chi` HTTP service, and the package-owned `orchd` runtime path for future web work -- the Phase 1 web-product skeleton is now in place, including root `pnpm` workspace files, a standalone React app under `apps/web`, an initial OpenAPI/events contract under `api/`, and the package-owned `orchd` backend runtime -- `orchd` now serves a minimal read-only web API with `chi`, including `/health`, runs list/detail, run task list, blocked-task list, and thread detail endpoints backed by the existing SQLite state -- HTTP tests now cover the initial read-only `orchd` slice, and the new frontend workspace builds successfully with `pnpm run web:build` +- a forward-looking web product monorepo plan now exists under `docs/web-product-monorepo.md`, defining the recommended React frontend, `chi` HTTP service, and the package-owned `operator-api` runtime path for future web work +- the Phase 1 web-product skeleton is now in place, including root `pnpm` workspace files, a standalone React app under `apps/web`, an initial OpenAPI/events contract under `api/`, and the package-owned `operator-api` backend runtime +- the operator API now serves a minimal read-only web API with `chi`, including `/health`, runs list/detail, run task list, blocked-task list, and thread detail endpoints backed by the existing SQLite state +- HTTP tests now cover the initial read-only operator API slice, and the new frontend workspace builds successfully with `pnpm run web:build` - Phase 2 frontend work has now started by bootstrapping `apps/web` with copied-in `cadence-ui` tokens and foundational components for button, input, textarea, dialog, form, tabs, card, badge, and alert, with the shared token stylesheet loaded from the frontend entrypoint -- the first real Phase 2 read-only operator UI is now implemented in `apps/web`, including routed runs list, run detail, blocked queue, and thread timeline views backed by the existing `orchd` HTTP API, plus Tailwind v4 consumer wiring so the source-owned Cadence UI components render correctly in the app +- the first real Phase 2 read-only operator UI is now implemented in `apps/web`, including routed runs list, run detail, blocked queue, and thread timeline views backed by the existing operator API, plus Tailwind v4 consumer wiring so the source-owned Cadence UI components render correctly in the app - a repository-level skill workspace monorepo migration plan now exists under `docs/skill-workspace-monorepo.md`, defining the target split between runtime packages under `packages/`, agent-facing skill bundles under `skills/`, support apps under `apps/`, and package-based skill packaging flows - the first migration phase for the skill workspace monorepo is now complete: root `go.work` exists, `pnpm-workspace.yaml` now discovers `packages/*`, empty runtime module roots now exist under `packages/`, and a declarative `scripts/skill-bundles.json` plus `scripts/package_skill_runtimes.sh` scaffold now define package-oriented skill bundle metadata from the repo root - `packages/coord-core` now exists as the first real extracted runtime package, containing shared coordination DB/schema, protocol, and store code, and the active coordination runtimes now import `coord-core` instead of root `internal/db`, `internal/store`, and `internal/protocol` - `packages/inbox-runtime` and `packages/orch-runtime` now exist as package-owned runtimes with their own `cmd/` entrypoints and package-local CLI wiring/tests, and the root skill packaging flow now builds `skills/inbox`, `skills/orch`, and `skills/council-review` from package entrypoints instead of root `cmd/` paths -- `packages/orchd-runtime` now exists as the package-owned HTTP/query/web backend runtime, with package-local `cmd/orchd`, app, query, and HTTP transport code plus passing package-local tests +- `packages/operator-api` now exists as the package-owned HTTP/query/web backend runtime, with package-local `cmd/operator-api`, app, query, and HTTP transport code plus passing package-local tests - `packages/repo-memory-runtime` now exists as the package-owned `briefdb` runtime imported from the exploratory prototype, `skills/repo-memory` now exists as an agent-facing skill bundle, and the declarative root packaging flow now builds a bundled `skills/repo-memory/assets/briefdb` binary from the package runtime - a repo-local declarative packaging flow now builds bundled skill CLI assets for `inbox`, `orch`, `council-review`, and `repo-memory` - `orch` now implements `run init/show`, `task add`, `dep add`, `ready`, `dispatch`, `reconcile`, `wait`, `blocked`, `answer`, `retry`, `reassign`, `cancel`, `cleanup`, and `status` @@ -391,7 +391,7 @@ Add: - `apps/web` - `api/openapi.yaml` - `api/events.md` -- `packages/orchd-runtime` +- `packages/operator-api` Definition of done: @@ -407,10 +407,10 @@ Completed so far: - root `package.json`, `pnpm-workspace.yaml`, and `pnpm-lock.yaml` now define the monorepo JS workspace - `apps/web` now contains a Vite + React + TypeScript + TanStack Router + TanStack Query frontend shell -- `packages/orchd-runtime/cmd/orchd` now opens the shared SQLite database, applies migrations, and serves a `chi` router with graceful shutdown handling -- `packages/orchd-runtime/internal/query` now exposes run list/detail, run tasks, blocked-task, and thread-detail read models for the web surface -- `packages/orchd-runtime/internal/app` now provides a thin web-service boundary over the new read service -- `packages/orchd-runtime/internal/httpapi` now owns HTTP routing, JSON/error helpers, and the initial read-only endpoints +- `packages/operator-api/cmd/operator-api` now opens the shared SQLite database, applies migrations, and serves a `chi` router with graceful shutdown handling +- `packages/operator-api/internal/query` now exposes run list/detail, run tasks, blocked-task, and thread-detail read models for the web surface +- `packages/operator-api/internal/app` now provides a thin web-service boundary over the new read service +- `packages/operator-api/internal/httpapi` now owns HTTP routing, JSON/error helpers, and the initial read-only endpoints - `api/openapi.yaml` now documents the implemented read-only endpoints and response shapes - `api/events.md` now captures the planned SSE contract for the next realtime slice - `go test ./...` covers the new HTTP slice, and `pnpm run web:build` succeeds for the frontend workspace @@ -423,20 +423,20 @@ Remaining: Goal: -- implement the first real operator-facing read-only web UI on top of the Phase 1 shell and current `orchd` API contract +- implement the first real operator-facing read-only web UI on top of the Phase 1 shell and current operator API contract Add: - copied-in `cadence-ui` primitives and token CSS under `apps/web/src/cadence-ui` - Tailwind v4 consumer setup so the copied-in Cadence UI source renders correctly in the app - routed screens for runs list, run detail, blocked queue, and thread timeline -- typed frontend read helpers for the current `orchd` endpoints +- typed frontend read helpers for the current operator API endpoints Definition of done: - `apps/web` imports the shared Cadence token stylesheet from the frontend entrypoint - the Cadence UI source-owned components render correctly inside the consumer app -- the first routed read-only operator screens ship against the existing `orchd` contract +- the first routed read-only operator screens ship against the existing operator API contract - future web screens can compose from `cadence-ui` primitives instead of raw one-off HTML controls Status: @@ -488,10 +488,10 @@ Completed so far: - the repository-level migration design is captured in `docs/skill-workspace-monorepo.md` - the target package split now distinguishes `coord-core`, runtime packages, skill bundles, and support apps -- the migration plan now defines phased extraction for `coord-core`, `inbox-runtime`, `orch-runtime`, `orchd-runtime`, and `repo-memory-runtime` +- the migration plan now defines phased extraction for `coord-core`, `inbox-runtime`, `orch-runtime`, `operator-api`, and `repo-memory-runtime` - root `go.work` now includes the package-owned runtime module roots under `packages/` - `pnpm-workspace.yaml` now includes `packages/*`, and root `package.json` now exposes monorepo bundle planning, validation, and Go package test scripts -- initial module roots now exist for `packages/coord-core`, `packages/inbox-runtime`, `packages/orch-runtime`, `packages/orchd-runtime`, and `packages/repo-memory-runtime` +- initial module roots now exist for `packages/coord-core`, `packages/inbox-runtime`, `packages/orch-runtime`, `packages/operator-api`, and `packages/repo-memory-runtime` - `scripts/skill-bundles.json` now records the first package-oriented skill bundle metadata, including the future `repo-memory` runtime mapping - `scripts/package_skill_runtimes.sh` now provides a declarative bundle plan/validate scaffold that targets package paths rather than hardcoded root runtime paths - `packages/coord-core/db` now owns the shared SQLite open, pragmas, migrations, and coordination schema files @@ -504,7 +504,7 @@ Completed so far: - `scripts/skill-bundles.json` now marks `inbox`, `orch`, and `council-review` as ready package-backed bundles - `scripts/package_skill_runtimes.sh package` now builds and installs `skills/inbox/assets/inbox`, `skills/orch/assets/orch`, and `skills/council-review/assets/orch` from package entrypoints - the legacy `scripts/package_skill_clis.sh` entrypoint now delegates to the declarative package-oriented packaging flow instead of hardcoding root `cmd/` paths -- `packages/orchd-runtime/cmd/orchd` plus `packages/orchd-runtime/internal/{app,httpapi,query}` now provide a package-owned web backend runtime and pass `go test ./...` +- `packages/operator-api/cmd/operator-api` plus `packages/operator-api/internal/{app,httpapi,query}` now provide a package-owned web backend runtime and pass `go test ./...` - `packages/repo-memory-runtime/cmd/briefdb` plus its package-local `internal/brief` and `internal/store` now provide a package-owned repo-memory runtime and pass `go test ./...` - `skills/repo-memory/` now exists with `SKILL.md`, `agents/openai.yaml`, and a bundled `assets/briefdb` binary produced by the declarative packaging flow - `docs/tests/repo-memory-skill/` now exists with a README plus an initial forward-test case covering search-before-add and durable entry retrieval through the bundled skill diff --git a/docs/roadmaps/archive/rename-orchd-runtime-to-operator-api.md b/docs/roadmaps/archive/rename-orchd-runtime-to-operator-api.md new file mode 100644 index 0000000..51762f6 --- /dev/null +++ b/docs/roadmaps/archive/rename-orchd-runtime-to-operator-api.md @@ -0,0 +1,59 @@ +# Rename Operator API Runtime + +## Status + +- `completed` + +## Owner + +- Codex + +## Started At + +- `2026-03-20` + +## Goal + +- Rename the package-owned web backend runtime from `packages/orchd-runtime` to `packages/operator-api` and rename its command entrypoint from `cmd/orchd` to `cmd/operator-api` so the current workspace no longer carries the ambiguous `orchd` name. + +## Scope + +- rename the package directory and module path +- update imports, workspace metadata, and current docs +- validate the package-oriented build and test flows after the rename + +## Checklist + +- [x] inspect current `orchd-runtime` references +- [x] rename the package directory and module path to `operator-api` +- [x] update workspace metadata, imports, and current docs +- [x] validate package-oriented Go tests and frontend build after the rename +- [x] archive this roadmap and commit the completed rename + +## Files + +- `docs/roadmaps/archive/rename-orchd-runtime-to-operator-api.md` +- `go.work` +- `packages/operator-api/` +- `docs/implementation-roadmap.md` +- `docs/skill-workspace-monorepo.md` +- `docs/web-product-monorepo.md` + +## Decisions + +- rename both the package and the command entrypoint together so current source-of-truth code no longer carries the `orchd` name + +## Blockers + +- none + +## Next Step + +- continue feature work with `packages/operator-api` as the backend runtime name and avoid reintroducing the old `orchd` label + +## Completion Summary + +- renamed the package-owned backend runtime from `packages/orchd-runtime` to `packages/operator-api` +- renamed the package-owned daemon entrypoint from `cmd/orchd` to `cmd/operator-api` +- updated current imports, workspace metadata, frontend copy, and current architecture docs to the new operator API name +- validated the renamed runtime through package-oriented Go tests, skill bundle packaging, and frontend build checks diff --git a/docs/skill-workspace-monorepo.md b/docs/skill-workspace-monorepo.md index 92ee8f1..05dda94 100644 --- a/docs/skill-workspace-monorepo.md +++ b/docs/skill-workspace-monorepo.md @@ -82,7 +82,7 @@ Examples: │ ├─ coord-core/ # shared coordination kernel │ ├─ inbox-runtime/ # inbox CLI runtime │ ├─ orch-runtime/ # orch CLI runtime -│ ├─ orchd-runtime/ # orch HTTP + query/web backend runtime +│ ├─ operator-api/ # operator HTTP + query/web backend runtime │ ├─ repo-memory-runtime/ # briefdb / repo-memory runtime │ └─ ... # future skill runtimes ├─ skills/ @@ -163,13 +163,13 @@ It depends on `coord-core`. `council-review` remains a skill bundle that currently reuses the `orch` binary unless it later grows its own standalone runtime. -### `packages/orchd-runtime` +### `packages/operator-api` This package owns the HTTP and read-model runtime for the operator web surface. It should contain: -- `cmd/orchd/main.go` +- `cmd/operator-api/main.go` - package-local `internal/httpapi` - package-local `internal/query` - package-local `internal/app/web.go` @@ -237,7 +237,7 @@ Add a root `go.work` that includes every Go runtime package: - `packages/coord-core` - `packages/inbox-runtime` - `packages/orch-runtime` -- `packages/orchd-runtime` +- `packages/operator-api` - `packages/repo-memory-runtime` The root repository should stop relying on one giant root `go.mod` as the long-term @@ -394,16 +394,16 @@ Exit criteria: - inbox and orch binaries build from package-owned runtimes - `skills/inbox` and `skills/orch` package from package paths only -### Phase 4: Extract `orchd-runtime` +### Phase 4: Extract `operator-api` Changes: -- move `cmd/orchd`, `internal/httpapi`, `internal/query`, and web app service layer into `packages/orchd-runtime` +- move the operator API runtime into `packages/operator-api` - make `apps/web` depend only on HTTP contract and dev proxy, not root assumptions Exit criteria: -- the web stack builds against `orchd-runtime` +- the web stack builds against `operator-api` ### Phase 5: Import `repo-memory-runtime` diff --git a/docs/web-product-monorepo.md b/docs/web-product-monorepo.md index 9d6f42c..6665dbd 100644 --- a/docs/web-product-monorepo.md +++ b/docs/web-product-monorepo.md @@ -20,7 +20,7 @@ The recommended direction is: - keep a single monorepo - add a standalone frontend app under `apps/web` -- add a standalone HTTP backend entrypoint, now owned under `packages/orchd-runtime/cmd/orchd` +- add a standalone HTTP backend entrypoint, now owned under `packages/operator-api/cmd/operator-api` - keep the current Go repository as the backend source of truth - evolve the backend by introducing shared application services and UI-oriented query layers - avoid building the web backend by shelling out to the existing CLIs @@ -113,9 +113,9 @@ Recommended stack: The frontend should consume only HTTP APIs and event streams from the backend. It should never read SQLite directly and should not depend on CLI output parsing. -### `packages/orchd-runtime` +### `packages/operator-api` -The backend HTTP service should live in a package-owned runtime with its Go binary under `packages/orchd-runtime/cmd/orchd`. +The backend HTTP service should live in a package-owned runtime with its Go binary under `packages/operator-api/cmd/operator-api`. Responsibilities: @@ -126,7 +126,7 @@ Responsibilities: The existing orch and inbox runtimes should remain available as operator and debugging tools through their package-owned binaries under `packages/orch-runtime/cmd/orch` and `packages/inbox-runtime/cmd/inbox`. -### `packages/orchd-runtime/internal/app` +### `packages/operator-api/internal/app` This package should become the shared application-service layer. @@ -142,7 +142,7 @@ It should own business actions that currently sit mostly in CLI command handlers Both CLI commands and HTTP handlers should call into this layer. -### `packages/orchd-runtime/internal/query` +### `packages/operator-api/internal/query` This package should hold read models specifically shaped for the web UI. @@ -156,7 +156,7 @@ Examples: These should be query-oriented models rather than raw database table mirrors. -### `packages/orchd-runtime/internal/httpapi` +### `packages/operator-api/internal/httpapi` This package should hold the web transport layer. @@ -325,10 +325,10 @@ The goal is to avoid rewriting product boundaries just because the storage engin Add: - `apps/web` -- `packages/orchd-runtime/cmd/orchd` -- `packages/orchd-runtime/internal/httpapi` -- `packages/orchd-runtime/internal/app` -- `packages/orchd-runtime/internal/query` +- `packages/operator-api/cmd/operator-api` +- `packages/operator-api/internal/httpapi` +- `packages/operator-api/internal/app` +- `packages/operator-api/internal/query` - `api/openapi.yaml` - `api/events.md` - root JS workspace files such as `package.json` and `pnpm-workspace.yaml` diff --git a/go.work b/go.work index 3dd0362..f7ca911 100644 --- a/go.work +++ b/go.work @@ -4,6 +4,6 @@ use ( ./packages/coord-core ./packages/inbox-runtime ./packages/orch-runtime - ./packages/orchd-runtime + ./packages/operator-api ./packages/repo-memory-runtime ) diff --git a/packages/orchd-runtime/cmd/orchd/main.go b/packages/operator-api/cmd/operator-api/main.go similarity index 65% rename from packages/orchd-runtime/cmd/orchd/main.go rename to packages/operator-api/cmd/operator-api/main.go index 430e0c8..8515303 100644 --- a/packages/orchd-runtime/cmd/orchd/main.go +++ b/packages/operator-api/cmd/operator-api/main.go @@ -3,7 +3,7 @@ package main import ( "os" - "ai-workflow-skill/packages/orchd-runtime/server" + "ai-workflow-skill/packages/operator-api/server" ) func main() { diff --git a/packages/orchd-runtime/go.mod b/packages/operator-api/go.mod similarity index 51% rename from packages/orchd-runtime/go.mod rename to packages/operator-api/go.mod index 1830c81..f485999 100644 --- a/packages/orchd-runtime/go.mod +++ b/packages/operator-api/go.mod @@ -1,4 +1,4 @@ -module ai-workflow-skill/packages/orchd-runtime +module ai-workflow-skill/packages/operator-api go 1.26 diff --git a/packages/orchd-runtime/go.sum b/packages/operator-api/go.sum similarity index 100% rename from packages/orchd-runtime/go.sum rename to packages/operator-api/go.sum diff --git a/packages/orchd-runtime/internal/app/web.go b/packages/operator-api/internal/app/web.go similarity index 94% rename from packages/orchd-runtime/internal/app/web.go rename to packages/operator-api/internal/app/web.go index 56ce592..1ef36df 100644 --- a/packages/orchd-runtime/internal/app/web.go +++ b/packages/operator-api/internal/app/web.go @@ -4,7 +4,7 @@ import ( "context" "database/sql" - "ai-workflow-skill/packages/orchd-runtime/internal/query" + "ai-workflow-skill/packages/operator-api/internal/query" "ai-workflow-skill/packages/coord-core/store" ) diff --git a/packages/orchd-runtime/internal/httpapi/response.go b/packages/operator-api/internal/httpapi/response.go similarity index 100% rename from packages/orchd-runtime/internal/httpapi/response.go rename to packages/operator-api/internal/httpapi/response.go diff --git a/packages/orchd-runtime/internal/httpapi/router.go b/packages/operator-api/internal/httpapi/router.go similarity index 97% rename from packages/orchd-runtime/internal/httpapi/router.go rename to packages/operator-api/internal/httpapi/router.go index 633763f..5365cfd 100644 --- a/packages/orchd-runtime/internal/httpapi/router.go +++ b/packages/operator-api/internal/httpapi/router.go @@ -8,7 +8,7 @@ import ( "github.com/go-chi/chi/v5" "github.com/go-chi/chi/v5/middleware" - "ai-workflow-skill/packages/orchd-runtime/internal/query" + "ai-workflow-skill/packages/operator-api/internal/query" "ai-workflow-skill/packages/coord-core/store" ) diff --git a/packages/orchd-runtime/internal/httpapi/router_test.go b/packages/operator-api/internal/httpapi/router_test.go similarity index 98% rename from packages/orchd-runtime/internal/httpapi/router_test.go rename to packages/operator-api/internal/httpapi/router_test.go index 921d93e..a968d85 100644 --- a/packages/orchd-runtime/internal/httpapi/router_test.go +++ b/packages/operator-api/internal/httpapi/router_test.go @@ -9,7 +9,7 @@ import ( "testing" "time" - "ai-workflow-skill/packages/orchd-runtime/internal/app" + "ai-workflow-skill/packages/operator-api/internal/app" dbpkg "ai-workflow-skill/packages/coord-core/db" "ai-workflow-skill/packages/coord-core/store" ) diff --git a/packages/orchd-runtime/internal/query/read_service.go b/packages/operator-api/internal/query/read_service.go similarity index 100% rename from packages/orchd-runtime/internal/query/read_service.go rename to packages/operator-api/internal/query/read_service.go diff --git a/packages/orchd-runtime/server/execute.go b/packages/operator-api/server/execute.go similarity index 87% rename from packages/orchd-runtime/server/execute.go rename to packages/operator-api/server/execute.go index c791c51..ed58eba 100644 --- a/packages/orchd-runtime/server/execute.go +++ b/packages/operator-api/server/execute.go @@ -14,12 +14,12 @@ import ( "time" "ai-workflow-skill/packages/coord-core/db" - "ai-workflow-skill/packages/orchd-runtime/internal/app" - "ai-workflow-skill/packages/orchd-runtime/internal/httpapi" + "ai-workflow-skill/packages/operator-api/internal/app" + "ai-workflow-skill/packages/operator-api/internal/httpapi" ) func Execute(args []string, stderr io.Writer) int { - fs := flag.NewFlagSet("orchd", flag.ContinueOnError) + fs := flag.NewFlagSet("operator-api", flag.ContinueOnError) fs.SetOutput(stderr) var ( @@ -71,7 +71,7 @@ func Execute(args []string, stderr io.Writer) int { } }() - logger.Printf("orchd listening on %s", listen) + logger.Printf("operator-api listening on %s", listen) if err := server.ListenAndServe(); err != nil && !errors.Is(err, http.ErrServerClosed) { logger.Printf("serve http api: %v", err) return 1 diff --git a/skills/council-review/assets/orch b/skills/council-review/assets/orch index 23313be9c6f1f6b9d2a20ba156f8f080ffaf37c1..d178ea8ae1d41f586eb6ebd44939b82cad89daa3 100755 GIT binary patch delta 1054 zcmbWz*;C8`0KoAn){$a!CaP7)mDaA`{(ip_-Pcx|R4T&mZ+9!{(0w>o$x4ojT4&Cf z@z9uI+F?vRFk{9HqX*2mCd}}_plOU3V|@J!9zKuXmv4998C5rKslC+tko^Ajk9F_I zJ8wMm^nNz?w#Ms+YEyikSt*UHsMDp_CJQ<8?(*2i>~KSpq}P_`rWv($1!6*tJ|kAK zg&XtB;!@HrvQTL*txOYj`b@DZTyDy()EAqxH`a@$*sN+LHO922RZ%+?wFf*g0TZFZ zBuvH>OobPw!5co9jv4sZ`(h?$VK(MqF6O}x^Wl#LScm`wA_y8RLNG$G7)!7ep;(6H zSb>#Tg)po}IJ8&;9rRcW0S33C7KeR9Es9pM+pK0mHi(i{wn&0x7p!JctF=pZ*=jN9 z1)EKgTq(g~z+^*&PKXe+&az+;5@bXm66+9!_1J)D#2^-Nh(`hvk%VNVAQeWWAsrbo zArl*sg-yst4sx*>dB{frwqPp?u?^d?17=vDzzQ4eC_=HjEV#rG@?Q&FEQoZe{Y4+A zBe4WKQHotCLpdr?iQT9|HEK|cI@F^9jc7tM_FymeVLu!=fEKjkAlh&UP8>!%j-Ufa zaSX?C0-fkWH%{Udde93OPU8&D;vCN70{U`57gs5g=-2PAT-_yilFQR2Nyx)V z<)J8U*bFP%Z5T5P|AA>r|-DMUH@?N{_XwrF-jh>qIC0;{ywZmFyF>WboDli(8 z&84oay!=XoSTEPsTO_T{D!G&Mt+JGowZl@dJ5|_h5}o#HYiWz3YEx8W5Q4D?MHt3m zJi-xyNK8N!CSnpM<6j?*7)-%bOv7}{z)Z|SEM{X4=3*Y^LyZN{AP(_Zh($<1A{Ju_ zmSP!_upG${kOD1q&_l$EprVqVL?_q;p;9aB1iL*&ktIQtQw3Sl=|!7e&>Iv*kW%%E zV7GPWX{5R1#WcN?ChFQ;8VRW|APwnQiB(vQHON3FjL1SZ)*=VFFd+}?V1@`!bTLM1e>rKrPzWpY(+V?VLK`yqY?^iu%imq*b#JT9KN{!TF}jc^lnwGG_lQ> z<3J5+;e-oy*ok`Vf*T&}Mg#Vs5qsf96ZT<04&WdT!G~rXMhlLh6-UvAV`#^5oWMzR z;1o{d49>!jbLhl*bfFtPxPXhegv;nfAFkjk`Z0iOL0`^w_v4K4vOoKBb^cI&`TgM+ z5!&Ys(G7RfjITbb&&9-yJV{^OnbtJ5_2 kbd6v7^knjvN1NUyex7FS9~zDr89dNj5*qZs3iulT0{qK{iU0rr diff --git a/skills/inbox/assets/inbox b/skills/inbox/assets/inbox index d9b6351891e56557bf8c86e49fd953477ae7d4e5..c8832229466ecb375ef02a824a9dcca2ca9e6408 100755 GIT binary patch delta 1021 zcmbWy*-z2|0KoAqjWR8;EW0TyD5z#JClPt>)uMTI| z=1a9kZM?MB+O*YNYp!*y+Is4#Etd~1w~lZBLJyzE@549L{4+9y`_gD>`}=QI-Bw-i z^FUT`OT_N@2lD9As3K#&OI>YL824lqX_R?}U7kX*A=PZwr#GgXOe#a2&*E|AxvLwr zsg-Fyl|^tW8eN5UMPrU?tJY&mt@H_cy~ScMXuWQ;v)bl$X^qV`Y0xH(z(h)a zBN-`BU=32CL>g2`58I?_eMC~3O({Cc?N&jj(Ta9mnJ9=3!EV(ml@8INvzKYoh4ONn z*fT6sFO+C9R6>TJ435gw5TJn;B6P^WTCBr*Y`{ijA`5zK!e$tdjT~%&5xLlkZP<=H z>_9#WP>3R!uoJtm8^thV4@$5X`%nrC_QQ&@fl-;w^Iz9JT#G$!i8?muZ?(aWayW1R z6{v(0Rj7sw2jNBy4&g9r;Xxg|sD}>?Xv7g5#W5Vm3HT8}6PnS2lW0W{r_hGeID>Ya z#W{4~JTBlOE};`$=td8EaT!-|HSBM_78l6OGRL&_JMZ1~KGffiPr1=D_Bvnid|lf4 z>hhmJ==X&x^~X1ZLt`6z+xwn&C=0sl?Rk3R%wUToY#8$UK9tDABa*()2jmmR`rouY z`&3aet84t>;N!&XuL+vr%chSkK9yv7wp_hHNe*s!zpV|}%l)qVox8e7-POrSdQy^d_q#(+ElFj!o! zpDm-)zcmj7y{0^qjkYAKxlEU4N-&u+%B^L#L&fE)j6LQeb81;kzRr|mv{mFdwNAAv zM_mz`t<4RoEJ(74RGLFAx{?%CLV7}y7~^n86<8{>)AO9hxOi)gB(Im`Zg9s;c)%00 zAj53Tffwe&8$Or^U;OJ8n2!Zm2tO>sV)$bTmSP!}BLFL~5`kES)mVcdti?L4M=&;E zBQ`;a5Nw7D0@MhFrcaWK(QfPQf?x}^Y6OQvEm?Jf)~Xk*I*q8cI|MOIk_4Szlmv&p zbwD8o$h6_2E?ldrpHhg>VheQ8BMjj%AOc&l4UyQ6C`7{u6JihxGj<>jJ7K{t#A7!S zum_1qLNZd2ioHlfI`$z0`;mzQ$U-&_!U|jGltL=`uj^K>^{q~s=u=-^C&3N}4&gA4 zAP2d~Lp};{6iyW47>ZDg5|pA0<*2}MRN@3qq6(*Q8r3+1v#7y2)S?dcXux?~z(rg_ zBQE0#uHqW5;|7}0j25)wCfaZdxBIH=?#w^4J@JV_)$JYs`M~6YAIgs}W(+-#NK@Yp z`Re}Cbjq)>t*gstugBBz{^@`Y{nL`y_l@JVO+B{3+921+wmYsd{PV0?lbI6iSrfkS?d?^+ bygwA?MSd}S^Yc}HzxTm>YpAn#u)X*%v)ZFn diff --git a/skills/orch/assets/orch b/skills/orch/assets/orch index 23313be9c6f1f6b9d2a20ba156f8f080ffaf37c1..d178ea8ae1d41f586eb6ebd44939b82cad89daa3 100755 GIT binary patch delta 1054 zcmbWz*;C8`0KoAn){$a!CaP7)mDaA`{(ip_-Pcx|R4T&mZ+9!{(0w>o$x4ojT4&Cf z@z9uI+F?vRFk{9HqX*2mCd}}_plOU3V|@J!9zKuXmv4998C5rKslC+tko^Ajk9F_I zJ8wMm^nNz?w#Ms+YEyikSt*UHsMDp_CJQ<8?(*2i>~KSpq}P_`rWv($1!6*tJ|kAK zg&XtB;!@HrvQTL*txOYj`b@DZTyDy()EAqxH`a@$*sN+LHO922RZ%+?wFf*g0TZFZ zBuvH>OobPw!5co9jv4sZ`(h?$VK(MqF6O}x^Wl#LScm`wA_y8RLNG$G7)!7ep;(6H zSb>#Tg)po}IJ8&;9rRcW0S33C7KeR9Es9pM+pK0mHi(i{wn&0x7p!JctF=pZ*=jN9 z1)EKgTq(g~z+^*&PKXe+&az+;5@bXm66+9!_1J)D#2^-Nh(`hvk%VNVAQeWWAsrbo zArl*sg-yst4sx*>dB{frwqPp?u?^d?17=vDzzQ4eC_=HjEV#rG@?Q&FEQoZe{Y4+A zBe4WKQHotCLpdr?iQT9|HEK|cI@F^9jc7tM_FymeVLu!=fEKjkAlh&UP8>!%j-Ufa zaSX?C0-fkWH%{Udde93OPU8&D;vCN70{U`57gs5g=-2PAT-_yilFQR2Nyx)V z<)J8U*bFP%Z5T5P|AA>r|-DMUH@?N{_XwrF-jh>qIC0;{ywZmFyF>WboDli(8 z&84oay!=XoSTEPsTO_T{D!G&Mt+JGowZl@dJ5|_h5}o#HYiWz3YEx8W5Q4D?MHt3m zJi-xyNK8N!CSnpM<6j?*7)-%bOv7}{z)Z|SEM{X4=3*Y^LyZN{AP(_Zh($<1A{Ju_ zmSP!_upG${kOD1q&_l$EprVqVL?_q;p;9aB1iL*&ktIQtQw3Sl=|!7e&>Iv*kW%%E zV7GPWX{5R1#WcN?ChFQ;8VRW|APwnQiB(vQHON3FjL1SZ)*=VFFd+}?V1@`!bTLM1e>rKrPzWpY(+V?VLK`yqY?^iu%imq*b#JT9KN{!TF}jc^lnwGG_lQ> z<3J5+;e-oy*ok`Vf*T&}Mg#Vs5qsf96ZT<04&WdT!G~rXMhlLh6-UvAV`#^5oWMzR z;1o{d49>!jbLhl*bfFtPxPXhegv;nfAFkjk`Z0iOL0`^w_v4K4vOoKBb^cI&`TgM+ z5!&Ys(G7RfjITbb&&9-yJV{^OnbtJ5_2 kbd6v7^knjvN1NUyex7FS9~zDr89dNj5*qZs3iulT0{qK{iU0rr diff --git a/skills/repo-memory/assets/briefdb b/skills/repo-memory/assets/briefdb index e6b3fb8a33c133f0772c02fcf7c9a60b44d0197c..052dbfdcce0441d856fedd3140a072e71b4c7c10 100755 GIT binary patch delta 842 zcmbWxNl#M&07c;-C{;iP1q6yBB8ZBuEswr3NGUT&l@=LLEYaghX_KM2R5|QNV?YJB>@?;V-!OmN)lI&A$qs!q|)=Dk^&PZe~WI z+QC*I=jvm znN_~NT3J`uGhnRsd9y{6)YornQ@LwAw(@?PSu504du?)=#$=Z+FDLnzlY+1g!3e>6 zY(OX!*oaLCLpUO^8Ig!WG-9v?TM>&m#A6#0kchP}C6cinJCK5%NX4$ea#Gr_=NXbi zEy^yZUC`&~M5kU71yL59cAZ)+i?ZG+ATSb#$)gaJh`q8KG8 zMH$Lbfl5@N8i!E>6OQ00YGH;2b*P6G$IyUAG~qZ-;3S%1LksMX;D8e@$Y_Nd9<<>U z+R*_oPNOqmF#48C4D-H;`rl#2*NllDR-P3X%D9+3RLmdcc5`@NTo=iF6q1}|Qko#@g2S&g~= za!ro-Nbj9WeR&FPBxE3dn~5i>&U_o4fN Jsi3Y4?tir4N09&k delta 842 zcmbWx%}>$+0LJmmRPrUwG83}QEHxv3AP8y}kdT^~sGyi{yaq}rMa!2%t=4Fsx>@U> z$1a)6HF9mexK*|~)bzm0+I(5HYOS_TR<5uALWj@s+4G&Adl5U0i5XGaucrkmaU&(O zpDa^J)}5n2C!?bK>5U${&TsAXR=2bcNE=k1v(f>fM&@+eq=DY%CZjEAcgT%Zy&k_* z7VI~B)J>s5y*U_AYU&*Q19japUys+~unkly`b+|AYtLO?l7yEeF<6gSY(O01 zkpK}kA`wYQMhZ3|6=~RvbZo&^WMCUIu^m|uW9@4Pvau7pkb~XG#h%ELB=6gUe3u|N z6!v1l?Up<3YC&b!2zGU`Qsr_B%2KCOP-~PXC>_a{Z zP>B5~!U0He5HbjmLxHuu5-OBH4Gl_BhVqCwdT7k|Uuh$xm4~(Z3LM4}XrY51M^Om_ zj5vlWRHFvRQ4165a02x(qXCU*f(2GIqXjm!;w0M8jt+F93wAi*gbQwXa0*`d(2XAW zaT)>iqA#M=2Nx@~iN3F&lTC__sksqn