de-hardcode orchestrator/interaction agent brand names (Mos/Tess) from coord + durable-session + roster schema #747

Closed
opened 2026-07-13 17:02:40 +00:00 by jason.woltje · 0 comments
Owner

Problem

Runtime agent identity is already configuration-driven (apps/gateway/src/coord/coord.module.ts reads MOSAIC_AGENT_NAME / MOSAIC_ORCHESTRATOR_AGENT_NAME), but the coordination/durable-session layer hardcodes the reference-deployment brand names ("Mos"/"Tess") into type names, class names, file names, DI symbols, and error prose. This bakes one operators naming scheme into the framework. Other operators want their own orchestrator/interaction agent names.

Canonical role vocabulary (decided)

  • orchestrator = delivery-authority agent (was "Mos")
  • interaction = human-facing agent (was "Tess")
    Display names ("Mos"/"Tess"/etc.) are per-operator aliases, not schema.

Scope (mechanical rename + 2 schema fields — no behavior change)

  1. packages/coord/src: MosCoordinationClient/MosCoordinationPort/MosCoordinationAuthorityError -> InteractionCoordination*; MosHandoff* -> Handoff*; file mos-coordination.ts -> interaction-coordination.ts; in-memory-mos-coordination-port.ts -> neutral; update index.ts exports.
  2. apps/gateway/src/coord: rename mos-coordination.{service,dto,controller}.ts + specs; DI symbol MOS_COORDINATION_CONFIG -> COORDINATION_CONFIG; keep env var names unchanged (already generic).
  3. packages/agent/src/tess-durable-session.ts -> durable-session.ts (+ gateway tess-durable-session.{service,repository,dto}.ts); scrub "Mos"/"Tess" from error strings; change sourceLabel ?? 'tess' default to a role-neutral literal.
  4. packages/mosaic/framework/fleet/roster.schema.json: add OPTIONAL alias (display name) and OPTIONAL provider (agent runtime provider, e.g. openai-codex) to the agents[] item schema; surface alias in mosaic fleet ps output.

Out of scope

Examples/tests that set name: Tess as sample data (class-B, fine). No runtime-identity logic changes.

Acceptance

  • No Mos/Tess in symbol/type/file/DI names or error prose under packages/coord, packages/agent, apps/gateway/src/coord (grep-clean).
  • roster.schema.json accepts optional alias + provider; existing rosters still validate.
  • Build + typecheck + existing coord/durable-session tests green.
  • mosaic fleet ps shows alias when set.
## Problem Runtime agent identity is already configuration-driven (`apps/gateway/src/coord/coord.module.ts` reads `MOSAIC_AGENT_NAME` / `MOSAIC_ORCHESTRATOR_AGENT_NAME`), but the coordination/durable-session layer hardcodes the reference-deployment brand names ("Mos"/"Tess") into type names, class names, file names, DI symbols, and error prose. This bakes one operators naming scheme into the framework. Other operators want their own orchestrator/interaction agent names. ## Canonical role vocabulary (decided) - orchestrator = delivery-authority agent (was "Mos") - interaction = human-facing agent (was "Tess") Display names ("Mos"/"Tess"/etc.) are per-operator **aliases**, not schema. ## Scope (mechanical rename + 2 schema fields — no behavior change) 1. `packages/coord/src`: `MosCoordinationClient`/`MosCoordinationPort`/`MosCoordinationAuthorityError` -> `InteractionCoordination*`; `MosHandoff*` -> `Handoff*`; file `mos-coordination.ts` -> `interaction-coordination.ts`; `in-memory-mos-coordination-port.ts` -> neutral; update `index.ts` exports. 2. `apps/gateway/src/coord`: rename `mos-coordination.{service,dto,controller}.ts` + specs; DI symbol `MOS_COORDINATION_CONFIG` -> `COORDINATION_CONFIG`; keep env var names unchanged (already generic). 3. `packages/agent/src/tess-durable-session.ts` -> `durable-session.ts` (+ gateway `tess-durable-session.{service,repository,dto}.ts`); scrub "Mos"/"Tess" from error strings; change `sourceLabel ?? 'tess'` default to a role-neutral literal. 4. `packages/mosaic/framework/fleet/roster.schema.json`: add OPTIONAL `alias` (display name) and OPTIONAL `provider` (agent runtime provider, e.g. openai-codex) to the agents[] item schema; surface `alias` in `mosaic fleet ps` output. ## Out of scope Examples/tests that set `name: Tess` as sample data (class-B, fine). No runtime-identity logic changes. ## Acceptance - No `Mos`/`Tess` in symbol/type/file/DI names or error prose under packages/coord, packages/agent, apps/gateway/src/coord (grep-clean). - `roster.schema.json` accepts optional `alias` + `provider`; existing rosters still validate. - Build + typecheck + existing coord/durable-session tests green. - `mosaic fleet ps` shows alias when set.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mosaicstack/stack#747