# armourpiercer1/dsh-agent-team architecture

> Architecture diagram of the GitHub repository armourpiercer1/dsh-agent-team, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-10-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/armourpiercer1/dsh-agent-team
- Repository: https://github.com/armourpiercer1/dsh-agent-team

## Overview

DSH Agent Team vNext is an external plugin that manages team sessions without modifying the host or putting team control-plane facts in session events. The main workflow runs from model-callable tools or the client UI through runtime authorization and orchestration, with durable state owned by TeamDomain; remote projection feeds serve external consumers. Contracts and pure domain rules support these stages. The README documents package boundaries, while sampled source confirms selected runtime, storage, and transport relationships; unsampled implementation links are omitted rather than inferred.

Main entry points: [`packages/runtime/action-router/router.ts`](https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/runtime/action-router/router.ts) (Action Router), [`packages/runtime/control/service.ts`](https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/runtime/control/service.ts) (Control Service), [`packages/client/src/transport/team-remote-client.ts`](https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/client/src/transport/team-remote-client.ts) (Remote Client), [`packages/storage/schema/index.ts`](https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/storage/schema/index.ts) (Storage Schema)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_contracts["Contracts"]
  node_contracts_api["Shared Contracts<br/>[index.ts]"]
  node_session_record["Team Session DTO"]
end

subgraph group_domain["Domain Rules"]
  node_blueprint["Blueprint Validation<br/>[validate.ts]"]
  node_policy["Policy Resolution<br/>[resolve.ts]"]
  node_compatibility["Compatibility Checks<br/>[engine.ts]"]
end

subgraph group_runtime["Runtime"]
  node_router["Action Router<br/>[router.ts]"]
  node_control["Control Service<br/>[service.ts]"]
  node_governance["Governance Service<br/>[service.ts]"]
  node_proposal_store["Proposal Store<br/>[proposal-store.ts]"]
  node_handoff["Handoff Service<br/>[service.ts]"]
  node_projection["Projection Service<br/>[service.ts]"]
end

subgraph group_storage["TeamDomain Storage"]
  node_storage_schema["Storage Schema<br/>[index.ts]"]
  node_bindings["Session Bindings<br/>[binding-service.ts]"]
  node_team_sessions[("Team Sessions<br/>[team-sessions.ts]")]
end

subgraph group_surfaces["Tools And Clients"]
  node_tools["Team Tools<br/>[tools.ts]"]
  node_remote["Remote Handlers<br/>[team.ts]"]
  node_remote_contract["Remote Contract<br/>[params.ts]"]
  node_client_plugin["Client Plugin<br/>[client.ts]"]
  node_team_mount["Team Mount Core<br/>[team-mount-core.ts]"]
  node_remote_client["Remote Client"]
  node_projection_store[("Projection Store")]
  node_team_ui["Team UI<br/>[TeamView.tsx]"]
end

node_user(("Team User"))
node_remote_consumers(("Remote Consumers"))

node_user -.->|"invokes tools"| node_tools
node_tools -.->|"routes actions"| node_router
node_router -->|"calls control"| node_control
node_router -->|"uses blueprint rules"| node_blueprint
node_router -->|"uses contracts"| node_contracts_api
node_control -->|"uses proposal store"| node_proposal_store
node_control -->|"uses schema"| node_storage_schema
node_governance -->|"records proposals"| node_proposal_store
node_governance -->|"resolves policy"| node_policy
node_bindings -->|"uses schema"| node_storage_schema
node_team_sessions -->|"uses schema"| node_storage_schema
node_client_plugin -->|"mounts plugin"| node_team_mount
node_remote_client -->|"uses remote API"| node_remote_contract
node_remote_client -->|"updates projection"| node_projection_store
node_team_ui -.->|"uses remote client"| node_remote_client
node_remote -.->|"parses requests"| node_remote_contract
node_remote_consumers -.->|"reads projections"| node_remote

click node_contracts_api "https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/contracts/src/index.ts"
click node_session_record "https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/contracts/src/dto/team-session-record.ts"
click node_blueprint "https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/domain/blueprint/src/validate.ts"
click node_policy "https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/domain/policy/src/resolve.ts"
click node_compatibility "https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/domain/compatibility/src/engine.ts"
click node_tools "https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/tools/src/tools.ts"
click node_router "https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/runtime/action-router/router.ts"
click node_control "https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/runtime/control/service.ts"
click node_governance "https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/runtime/governance/service.ts"
click node_proposal_store "https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/runtime/governance/proposal-store.ts"
click node_handoff "https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/runtime/handoff/service.ts"
click node_projection "https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/runtime/projection/service.ts"
click node_storage_schema "https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/storage/schema/index.ts"
click node_bindings "https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/storage/bindings/binding-service.ts"
click node_team_sessions "https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/storage/repositories/team-sessions.ts"
click node_remote "https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/remote/src/handlers/team.ts"
click node_remote_contract "https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/remote/src/contracts/params.ts"
click node_client_plugin "https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/client/src/plugin/client.ts"
click node_team_mount "https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/client/src/plugin/team-mount-core.ts"
click node_remote_client "https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/client/src/transport/team-remote-client.ts"
click node_projection_store "https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/client/src/state/team-projection-store.ts"
click node_team_ui "https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/client/src/ui/TeamView.tsx"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_contracts_api,node_session_record,node_user toneBlue
class node_blueprint,node_policy,node_compatibility toneAmber
class node_router,node_control,node_governance,node_proposal_store,node_handoff,node_projection toneMint
class node_storage_schema,node_bindings,node_team_sessions toneRose
class node_tools,node_remote,node_remote_contract,node_client_plugin,node_team_mount,node_remote_client,node_projection_store,node_team_ui,node_remote_consumers toneIndigo
```

## Components

### Contracts

- [Shared Contracts](https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/contracts/src/index.ts): `packages/contracts/src/index.ts`
- [Team Session DTO](https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/contracts/src/dto/team-session-record.ts): `packages/contracts/src/dto/team-session-record.ts`

### Domain Rules

- [Blueprint Validation](https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/domain/blueprint/src/validate.ts): `packages/domain/blueprint/src/validate.ts`
- [Policy Resolution](https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/domain/policy/src/resolve.ts): `packages/domain/policy/src/resolve.ts`
- [Compatibility Checks](https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/domain/compatibility/src/engine.ts): `packages/domain/compatibility/src/engine.ts`

### Runtime

- [Action Router](https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/runtime/action-router/router.ts): `packages/runtime/action-router/router.ts`
- [Control Service](https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/runtime/control/service.ts): `packages/runtime/control/service.ts`
- [Governance Service](https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/runtime/governance/service.ts): `packages/runtime/governance/service.ts`
- [Proposal Store](https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/runtime/governance/proposal-store.ts): `packages/runtime/governance/proposal-store.ts`
- [Handoff Service](https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/runtime/handoff/service.ts): `packages/runtime/handoff/service.ts`
- [Projection Service](https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/runtime/projection/service.ts): `packages/runtime/projection/service.ts`

### TeamDomain Storage

- [Storage Schema](https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/storage/schema/index.ts): `packages/storage/schema/index.ts`
- [Session Bindings](https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/storage/bindings/binding-service.ts): `packages/storage/bindings/binding-service.ts`
- [Team Sessions](https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/storage/repositories/team-sessions.ts): `packages/storage/repositories/team-sessions.ts`

### Tools And Clients

- [Team Tools](https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/tools/src/tools.ts): `packages/tools/src/tools.ts`
- [Remote Handlers](https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/remote/src/handlers/team.ts): `packages/remote/src/handlers/team.ts`
- [Remote Contract](https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/remote/src/contracts/params.ts): `packages/remote/src/contracts/params.ts`
- [Client Plugin](https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/client/src/plugin/client.ts): `packages/client/src/plugin/client.ts`
- [Team Mount Core](https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/client/src/plugin/team-mount-core.ts): `packages/client/src/plugin/team-mount-core.ts`
- [Remote Client](https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/client/src/transport/team-remote-client.ts): `packages/client/src/transport/team-remote-client.ts`
- [Projection Store](https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/client/src/state/team-projection-store.ts): `packages/client/src/state/team-projection-store.ts`
- [Team UI](https://github.com/armourpiercer1/dsh-agent-team/blob/master/packages/client/src/ui/TeamView.tsx): `packages/client/src/ui/TeamView.tsx`

### Other components

- **Team User**
- **Remote Consumers**

## Connections

- Team User → Team Tools: invokes tools
- Team Tools → Action Router: routes actions
- Action Router → Control Service: calls control (evidence: `packages/runtime/action-router/router.ts`)
- Action Router → Blueprint Validation: uses blueprint rules (evidence: `packages/runtime/action-router/router.ts`)
- Action Router → Shared Contracts: uses contracts (evidence: `packages/runtime/action-router/router.ts`)
- Control Service → Proposal Store: uses proposal store (evidence: `packages/runtime/control/service.ts`)
- Control Service → Storage Schema: uses schema (evidence: `packages/runtime/control/service.ts`)
- Governance Service → Proposal Store: records proposals (evidence: `packages/runtime/governance/service.ts`)
- Governance Service → Policy Resolution: resolves policy (evidence: `packages/runtime/governance/service.ts`)
- Session Bindings → Storage Schema: uses schema (evidence: `packages/storage/bindings/binding-service.ts`)
- Team Sessions → Storage Schema: uses schema (evidence: `packages/storage/repositories/team-sessions.ts`)
- Client Plugin → Team Mount Core: mounts plugin (evidence: `packages/client/src/plugin/client.ts`)
- Remote Client → Remote Contract: uses remote API (evidence: `packages/client/src/transport/team-remote-client.ts`)
- Remote Client → Projection Store: updates projection (evidence: `packages/client/src/transport/team-remote-client.ts`)
- Team UI → Remote Client: uses remote client
- Remote Handlers → Remote Contract: parses requests
- Remote Consumers → Remote Handlers: reads projections
