docs: make the service map the front door of architecture.md
The Layering ASCII diagram was cluttered, lumped THE concrete loop plugin undifferentiated into a grab-bag plugins box, omitted dsh-agent-core and the app packages, and restated the dependency rule that packages/README.md already owns — while being the first thing a reader linked from README hits. - Drop the Layering section; the tier story becomes one intro sentence and the dependency rule a one-line Service map footer linking packages/README.md#dependencies. - Split the Service map into the spine (packages/core/) vs the swappable capability seams; annotate ctx.agentLoop as THE concrete loop plugin. - Promote Cordis waterfall semantics to a top-level section placed before first waterfall use; drop '(important)' from the heading (anchor swept: AGENTS.md, gen-cordis-catalog.ts + regenerated catalog). - Promote Event taxonomy to a top-level section (anchor unchanged). - Retitle 'The vocabulary (dsh-llm)' to 'Content blocks and streaming (dsh-llm)' so the heading names its content (citation swept: llm-streaming.md). Net -29 words (1851 -> 1822); the 1890 ceiling stands, keeping the manifest's working margin.
This commit is contained in:
@@ -545,7 +545,7 @@ function render(events: EventEntry[], services: ServiceEntry[]): string {
|
||||
'',
|
||||
'## Events',
|
||||
'',
|
||||
'Dispatch modes: **emit** (fire-and-forget), **waterfall** (each listener gets `next()` and may transform or veto — see [waterfall semantics](../architecture.md#cordis-waterfall-semantics-important)), **parallel** (awaited fan-out; all listeners run), **serial** (awaited in registration order until one returns a bail value — anything other than `null`, `false`, or `undefined`).',
|
||||
'Dispatch modes: **emit** (fire-and-forget), **waterfall** (each listener gets `next()` and may transform or veto — see [waterfall semantics](../architecture.md#cordis-waterfall-semantics)), **parallel** (awaited fan-out; all listeners run), **serial** (awaited in registration order until one returns a bail value — anything other than `null`, `false`, or `undefined`).',
|
||||
'',
|
||||
]
|
||||
const scopes = [...new Set(events.map(e => e.scope))].sort()
|
||||
|
||||
Reference in New Issue
Block a user