Agentic AI Atlasby a5c.ai
OverviewWikiGraphFor AgentsEdgesSearchWorkspace
/
GitHubDocsDiscord
iiRecord
Agentic AI Atlas · Agent Stack Decomposition — agent-platform, agent-core, SDK, and adapters
page:docs-v6-spec-and-roadmap-v6-1-agent-stack-decompositiona5c.ai
Search record views/
Record · tabs

Available views

II.Record viewspp. 1 - 1
overviewarticlejsongraph
II.
Page JSON

page:docs-v6-spec-and-roadmap-v6-1-agent-stack-decomposition

Structured · live

Agent Stack Decomposition — agent-platform, agent-core, SDK, and adapters json

Inspect the normalized record payload exactly as the atlas UI reads it.

File · wiki/docs/v6-spec-and-roadmap/v6-1/agent-stack-decomposition.mdCluster · wiki
Record JSON
{
  "id": "page:docs-v6-spec-and-roadmap-v6-1-agent-stack-decomposition",
  "_kind": "Page",
  "_file": "wiki/docs/v6-spec-and-roadmap/v6-1/agent-stack-decomposition.md",
  "_cluster": "wiki",
  "attributes": {
    "nodeKind": "Page",
    "sourcePath": "docs/v6-spec-and-roadmap/v6.1/agent-stack-decomposition.md",
    "sourceKind": "repo-docs",
    "title": "Agent Stack Decomposition — agent-platform, agent-core, SDK, and adapters",
    "displayName": "Agent Stack Decomposition — agent-platform, agent-core, SDK, and adapters",
    "slug": "docs/v6-spec-and-roadmap/v6-1/agent-stack-decomposition",
    "articlePath": "wiki/docs/v6-spec-and-roadmap/v6.1/agent-stack-decomposition.md",
    "article": "\n# Agent Stack Decomposition — agent-platform, agent-core, SDK, and adapters\n\nThe atlas graph models two AgentProducts (`agent-platform`, `adapters`) each decomposed into Core/Runtime/Platform/UI implementations. This document maps the graph's decomposition to the actual packages and identifies what needs to change.\n\n## Graph Model: Two Agent Products\n\n### agent-platform (full-cli-agent, stackScope: full)\n\nThe graph decomposes `agent:agent-platform` into 4 implementation layers:\n\n| Graph Node | Kind | Layer | Description |\n|-----------|------|-------|-------------|\n| `agent-core-impl:agent-platform.core@current` | AgentCoreImpl | L4 | SDK-backed CLI loop — delegates to babysitter-sdk process functions |\n| `agent-runtime-impl:agent-platform.runtime@current` | AgentRuntimeImpl | L5 | SDK runtime + daemon — daemon, observer, MCP server surfaces |\n| `agent-platform-impl:agent-platform.platform@current` | AgentPlatformImpl | L6 | defineTask + plugin/skill registry |\n| `agent-ui-impl:agent-platform.ui@current` | AgentUIImpl | L11 | CLI binary presentation |\n\n### adapters (full-cli-agent + remote)\n\nThe graph has `agent:adapters` and `agent:adapters-remote`:\n\n| Graph Node | Kind | Description |\n|-----------|------|-------------|\n| `agent-core-impl:adapters-remote.core@current` | AgentCoreImpl | Transport-only delegator |\n| `presentation:adapters-tui` | Presentation | TUI |\n| `presentation:adapters-cli` | Presentation | CLI |\n| `presentation:adapters-webui` | Presentation | Web UI |\n| `presentation:adapters-mobile-ios` | Presentation | iOS |\n| `presentation:adapters-mobile-android` | Presentation | Android |\n| + 4 more (TV, watch) | Presentation | ... |\n\n---\n\n## Current Package Reality\n\n### Three \"core\" packages doing different things:\n\n| Package | npm name | What it actually does |\n|---------|----------|----------------------|\n| `packages/babysitter-sdk/` | `@a5c-ai/babysitter-sdk` | Orchestration engine: runs, replay, storage, tasks, hooks, plugins, profiles, session, compression, MCP, CLI commands |\n| `packages/genty/core/` | `@a5c-ai/genty-core` | Thin: agentic tools, background process registry, session binding, deferred tool registry |\n| `packages/genty/platform/` | `@a5c-ai/genty-platform` | Fat CLI: wraps SDK + agent-core, adds daemon, observer, governance, harness bridge, cost, interaction |\n\n### The confusion:\n\n1. **`genty-core` is tiny** — 6 source files. It's NOT the \"core\" of anything in the graph sense. The graph's `AgentCoreImpl` (SDK-backed CLI loop) lives in `babysitter-sdk`, not `genty-core`.\n\n2. **`babysitter-sdk` is the real core** — runtime, replay, storage, tasks, hooks, process context, effect model. This is what the graph calls `agent-core-impl:agent-platform.core`.\n\n3. **`agent-platform` is core + runtime + platform + UI** — it exports 14 sub-modules (api, cli, cost, daemon, governance, harness, interaction, observability, runtime, seams, session, storage, tasks). The graph correctly decomposes it into 4 layers but the code is one monolithic package.\n\n---\n\n## Target: Graph-Aligned Package Structure\n\n### agent-platform decomposition\n\nThe graph says agent-platform has Core, Runtime, Platform, and UI. The code should reflect this:\n\n| Graph Layer | Target Package | Current Location | What Moves |\n|-------------|---------------|------------------|------------|\n| L4 AgentCoreImpl | `@a5c-ai/babysitter-sdk` (stays) | `packages/babysitter-sdk/` | Nothing — SDK IS the core. agent-core package contents fold into SDK or agent-platform. |\n| L5 AgentRuntimeImpl | `@a5c-ai/genty-platform` (stays, slimmed) | `packages/genty/platform/` | Keep: daemon, session, harness bridge, runtime. Remove: things that belong in other layers. |\n| L6 AgentPlatformImpl | `@a5c-ai/extensions-adapter` (renamed from extensions-adapter) + `@a5c-ai/agent-catalog` | `packages/extensions-adapter/`, `packages/agent-catalog/` | Plugin compilation, skill discovery, marketplace |\n| L11 AgentUIImpl | `@a5c-ai/genty-platform` CLI entry | `packages/genty/platform/src/cli/` | CLI stays in agent-platform — it's the binary |\n\n### agent-core package fate\n\n`@a5c-ai/genty-core` is confusingly named — it's not the agent core, it's a small utility package. Options:\n\n**Option A: Fold into agent-platform** (recommended)\n- Move agentic tools, background process registry, session binding into agent-platform\n- Delete agent-core package\n- Update imports\n\n**Option B: Rename to agent-tools**\n- If it grows to own tool dispatch, rename to `@a5c-ai/agent-tools`\n- But tools-adapter is the graph concept for this — so it would become part of tools-adapter\n\n**Option C: Fold into tools-adapter**\n- When tools-adapter is created (Phase 2.1), merge agent-core into it\n- agent-core's agentic tools + deferred tool registry are tools-adapter concerns\n\n**Recommendation: Option C** — agent-core becomes the seed of tools-adapter.\n\n### tasks-adapter (renamed from tasks-adapter)\n\nPer user direction: `tasks-adapter` becomes part of `tasks-adapter`.\n\nThe graph's `adapter:tasks-adapter` description: \"The lone live Trust Chain primitive — ProvenBreakpointAnswer signs decision answers with the named Authority of the responder. Bridges every backend.\"\n\n| Current Package | Target | What Changes |\n|----------------|--------|-------------|\n| `@a5c-ai/tasks-adapter` | `@a5c-ai/tasks-adapter` | Rename package, keep all functionality (approval routing, cryptographic signing, pluggable backends, MCP) |\n\nThe tasks-adapter scope is broader than breakpoints — it's the trust chain for ALL task resolutions, not just breakpoints. Future: Linear/GitHub/Slack task backends, task routing policies, multi-responder coordination.\n\n---\n\n## Detailed Task List\n\n### T1: Dissolve agent-core into tools-adapter seed\n\n| Task | Effort |\n|------|--------|\n| Create `packages/tools-adapter/` with seed from agent-core | Medium |\n| Move `agenticTools/` from agent-core to tools-adapter | Small |\n| Move `deferredToolRegistry.ts` from agent-core to tools-adapter | Small |\n| Move `backgroundProcessRegistry.ts` to agent-platform (runtime concern) | Small |\n| Move `session.ts` to agent-platform (runtime concern) | Small |\n| Update all imports from `@a5c-ai/genty-core` across monorepo | Medium |\n| Deprecate `@a5c-ai/genty-core` on npm | Small |\n| Update graph: remove agent-core SourceRef, add tools-adapter SourceRef | Small |\n\n### T2: Slim agent-platform to match graph Runtime+UI scope\n\nagent-platform currently exports 14 modules. Per graph, it should own Runtime (L5) and UI (L11):\n\n| Module | Current | Target Owner | Reason |\n|--------|---------|-------------|--------|\n| `api` | agent-platform | agent-platform | Runtime API surface |\n| `cli` | agent-platform | agent-platform | UI (L11) |\n| `cost` | agent-platform | agent-platform | Runtime telemetry |\n| `daemon` | agent-platform | agent-platform | Runtime (L5) |\n| `governance` | agent-platform | agent-platform or tasks-adapter | Governance could move to tasks-adapter if it's approval-centric |\n| `harness` | agent-platform | agent-platform | Runtime harness bridge |\n| `interaction` | agent-platform | agent-platform | UI (L11) |\n| `observability` | agent-platform | agent-platform | Runtime telemetry |\n| `runtime` | agent-platform | agent-platform | Core runtime (L5) |\n| `seams` | agent-platform | agent-platform | Architecture seam contracts |\n| `session` | agent-platform | agent-platform | Runtime session (L5) |\n| `storage` | agent-platform | agent-platform | Runtime storage |\n| `tasks` | agent-platform | agent-platform | Task execution |\n\n**Result:** agent-platform keeps most modules — they ARE runtime/UI concerns. The `governance` module is the only candidate for extraction (to tasks-adapter), but only if it's purely about approval policies.\n\n### T3: babysitter-sdk layer annotation\n\nThe SDK is intentionally monolithic. Don't split it — annotate what graph concepts it implements:\n\n| SDK Module | Graph Layer | Graph Node Kind |\n|-----------|-------------|-----------------|\n| `runtime/` | L4 (Agent-Core) + L13 (Orchestration) | AgentCoreImpl, OrchestrationPrimitive, Run, Phase |\n| `storage/` | L7 (Workspace) | Workspace (partial) |\n| `tasks/` | L8 (Execution) | Effect, Execution, Invocation |\n| `hooks/` | Cross-cutting | HookSurface (via hooks-adapter) |\n| `plugins/` | L6 (Agent-Platform) | Plugin, PluginMarketplace |\n| `session/` | L5 (Agent-Runtime) | Session, session-storage-adapter |\n| `mcp/` | Tool-adapter concern | ToolDescriptor, ToolServer |\n| `harness/` | L5 (Agent-Runtime) | AgentRuntimeImpl (adapter detection) |\n| `profiles/` | L12 (Knowledge-Fabric) | (user/project knowledge) |\n| `compression/` | L4 (Agent-Core) | CompactionPolicy |\n| `prompts/` | L4 (Agent-Core) | PromptTemplate |\n| `breakpoints/` | L9 (Sandbox) + L14 (Governance) | HumanCheckpoint |\n\n**Tasks:**\n- [ ] Add `\"atlas\"` field to sdk `package.json` listing all layers and node kinds\n- [ ] Add module-level JSDoc comments referencing graph layer and node kind\n- [ ] Create `docs/sdk-layer-map.md` documenting which source directory maps to which layer\n\n### T4: adapters internal decomposition\n\nAs described in graph-alignment-tasks.md Phase 1.3, split into graph-aligned sub-packages:\n\n| Current | Target | Graph Adapter |\n|---------|--------|-----------|\n| `adapters/core` | `adapters/comm` (or `agent-comm-adapter`) | `adapter:agent-comm-adapter` |\n| `adapters/cli` launch.ts | `adapters/launch` | `adapter:agent-launch-adapter` |\n| `adapters/cli` install.ts + `adapters/adapters` | `adapters/config` | `adapter:agent-config-adapter` |\n| `adapters/cli` (composition) | `adapters/cli` (thin, wires muxes) | No adapter — composition |\n| `adapters/gateway` | `adapters/gateway` | No adapter — presentation |\n| `adapters/tui` | `adapters/tui` | No adapter — presentation |\n| `adapters/ui` | `adapters/ui` | No adapter — presentation |\n| `adapters/webui` | `adapters/webui` | No adapter — presentation |\n| `adapters/observability` | `adapters/observability` | No adapter — cross-cutting |\n\n---\n\n## Execution Order (combined with graph-alignment-tasks.md)\n\n```\n1. Rename tasks-adapter → tasks-adapter\n2. Rename extensions-adapter → extensions-adapter  \n3. Dissolve agent-core → tools-adapter seed + agent-platform\n   ↓\n4. Extract agent-launch-adapter from adapters-cli\n5. Extract agent-config-adapter from adapters-cli + adapters-adapters\n6. Rename agent-comm-adapter → agent-comm-adapter\n   ↓\n7. Annotate babysitter-sdk with layer metadata\n8. Annotate agent-platform with layer metadata\n   ↓\n9. Implement tools-adapter: schema translation, dispatch policies\n10. Implement agent-launch-adapter: 9-state lifecycle, retry\n11. Implement agent-comm-adapter: formalized event schema\n12. Complete transport-adapter: codecs\n   ↓\n13. Update graph: SourceRef nodes, decomposition edges, cluster moves\n```\n\n## Final Package Landscape (Target)\n\n| Package | Graph Alignment | Layer(s) |\n|---------|----------------|----------|\n| `@a5c-ai/babysitter-sdk` | Orchestration engine (annotated, not renamed) | L4, L7, L8, L13 |\n| `@a5c-ai/genty-platform` | AgentRuntimeImpl + AgentUIImpl | L5, L11 |\n| `@a5c-ai/babysitter` | Metapackage (unchanged) | — |\n| `@a5c-ai/launch-adapter` | `adapter:agent-launch-adapter` | L8 |\n| `@a5c-ai/comm-adapter` | `adapter:agent-comm-adapter` | L4-L5 |\n| `@a5c-ai/config-adapter` | `adapter:agent-config-adapter` | L5-L6 |\n| `@a5c-ai/adapters-cli` | Composition CLI (`adapters`) | L10 |\n| `@a5c-ai/adapters-gateway` | Remote API | L6 |\n| `@a5c-ai/genty-tui` | Presentation | L11 |\n| `@a5c-ai/genty-ui` | Shared UI | L11 |\n| `@a5c-ai/genty-web-app` | Web UI | L11 |\n| `@a5c-ai/adapters-observability` | Telemetry | Cross-cutting |\n| `@a5c-ai/hooks-adapter-*` | `adapter:hooks-adapter` | Cross-cutting |\n| `@a5c-ai/transport-adapter` | `adapter:transport-adapter` | L3 |\n| `@a5c-ai/extensions-adapter` | `adapter:extensions-adapter` (renamed from extensions-adapter) | L6 |\n| `@a5c-ai/tasks-adapter` | `adapter:tasks-adapter` (renamed from tasks-adapter) | L9, L14 |\n| `@a5c-ai/tools-adapter` | `adapter:tools-adapter` (new, seeded from agent-core) | L8 |\n| `@a5c-ai/agent-catalog` | Knowledge catalog | L12 |\n| `@a5c-ai/atlas` | Graph data + indexer | Cross-cutting |\n| `@a5c-ai/triggers-adapter` | Automation triggers | Cross-cutting |\n| `@a5c-ai/cloud` | Deployment | Cross-cutting |\n| `@a5c-ai/observer-dashboard` | Observability UI | L11 |\n| `@a5c-ai/kradle-*` | Project management | L6 |\n\n**Dissolved:**\n- `@a5c-ai/genty-core` → absorbed into `@a5c-ai/tools-adapter` (tools) + `@a5c-ai/genty-platform` (session/registry)\n- `@a5c-ai/adapters-codecs` → absorbed into `@a5c-ai/config-adapter`\n- `@a5c-ai/extensions-adapter` → renamed to `@a5c-ai/extensions-adapter`\n- `@a5c-ai/tasks-adapter` → renamed to `@a5c-ai/tasks-adapter`\n",
    "documents": []
  },
  "outgoingEdges": [],
  "incomingEdges": [
    {
      "from": "page:docs-v6-spec-and-roadmap-v6-1",
      "to": "page:docs-v6-spec-and-roadmap-v6-1-agent-stack-decomposition",
      "kind": "contains_page"
    }
  ]
}

Shortcuts

Back to overview
Open graph tab