II.
Page JSON
Structured · livepage:docs-development-02-atlas-graph-and-agent-catalog
Atlas Graph & Agent Catalog json
Inspect the normalized record payload exactly as the atlas UI reads it.
{
"id": "page:docs-development-02-atlas-graph-and-agent-catalog",
"_kind": "Page",
"_file": "wiki/docs/development/02-atlas-graph-and-agent-catalog.md",
"_cluster": "wiki",
"attributes": {
"nodeKind": "Page",
"sourcePath": "docs/development/02-atlas-graph-and-agent-catalog.md",
"sourceKind": "repo-docs",
"title": "Atlas Graph & Agent Catalog",
"displayName": "Atlas Graph & Agent Catalog",
"slug": "docs/development/02-atlas-graph-and-agent-catalog",
"articlePath": "wiki/docs/development/02-atlas-graph-and-agent-catalog.md",
"article": "\n# Atlas Graph & Agent Catalog\n\nThe knowledge layer that drives all runtime behavior.\n\n## Atlas Graph\n\nThe atlas is a YAML-defined knowledge graph at `packages/atlas/graph/`. It models:\n\n### Node Kinds\n\n| Kind | Example | What it represents |\n|------|---------|-------------------|\n| `AgentVersion` | `agentVersion:claude:ge-1-0-0` | A harness at a version range |\n| `AgentProduct` | `agent:claude-code` | The product identity |\n| `Capability` | `capability:supports-mcp` | An abstract capability |\n| `CapabilitySupport` | `capSupport:claude:mcp` | Claim that an agent has a capability |\n| `ModelVersion` | `modelVersion:gpt-5.5` | A model with pricing/limits |\n| `ModelProviderVersion` | `providerVersion:foundry` | A provider endpoint |\n| `TransportProtocol` | `transportProtocol:anthropic` | An API wire format |\n| `HookDescriptor` | `hook:sessionStart` | A lifecycle hook |\n| `PluginTarget` | `pluginTarget:claude-code` | A plugin installation target |\n| `LaunchConfig` | `launchConfig:claude.yolo` | A launch recipe |\n| `Evidence` | `evidence:claude-mcp-docs` | A capability evidence source |\n\n### Edge Kinds\n\n| Edge | From → To | Meaning |\n|------|-----------|---------|\n| `supports` | AgentVersion → Capability | Agent has this capability |\n| `version_of` | AgentVersion → AgentProduct | Version belongs to product |\n| `composed_of` | AgentVersion → CoreImpl, RuntimeImpl, etc. | Architecture layers |\n| `speaks` | CoreImpl → TransportProtocol | Agent uses this wire format |\n| `defaults_to_model` | AgentVersion → ModelVersion | Default model selection |\n\n### `adapterMetadata` Block\n\nEach `AgentVersion` YAML includes an `adapterMetadata` section with runtime data:\n\n```yaml\nadapterMetadata:\n authMethods:\n - type: api_key\n name: \"API Key\"\n envVars: [ANTHROPIC_API_KEY]\n authFiles: [\"~/.claude.json\"]\n hostEnvSignals: [CLAUDECODE, CLAUDE_CODE_SESSION_ID]\n sessionDir: \"~/.claude/projects\"\n sessionPersistence: file\n automationEnv:\n GEMINI_CLI_TRUST_WORKSPACE: \"true\"\n approvalModes: [yolo, prompt, deny]\n capabilityFlags:\n canResume: true\n supportsMultiTurn: true\n supportsMCP: true\n supportsThinking: true\n # ... 30+ flags\n runtimeHooks:\n preToolUse: blocking\n stop: nonblocking\n configSchema:\n configFormat: json\n configFilePaths: [\"~/.claude/settings.json\"]\n displayName: \"Claude Code\"\n defaultModelId: \"claude-sonnet-4-20250514\"\n```\n\n## Atlas Catalog\n\n`packages/atlas/src/catalog` provides a typed query API over the atlas graph\nthrough the `@a5c-ai/atlas/catalog` export:\n\n### Core Queries\n\n```typescript\nimport {\n getAgentVersion,\n getCapabilityFlags,\n getAdapterMetadata,\n getInstallMethods,\n getAutomationEnv,\n getHostEnvSignals,\n getSessionConfig,\n getRuntimeHooks,\n getConfigSchema,\n getDisplayName,\n getDefaultModelId,\n getBridgeCapabilities,\n getHookSupport,\n getYoloLaunchArgs,\n getTransportCodecCapabilities,\n} from '@a5c-ai/atlas/catalog';\n```\n\n### How Adapters Use It\n\nAdapters are thin wrappers — all data comes from the graph:\n\n```typescript\nclass ClaudeAdapter extends BaseAgentAdapter {\n get displayName() { return getDisplayName(this.agent); }\n get hostEnvSignals() { return getHostEnvSignals(this.agent); }\n get capabilities() {\n const flags = getCapabilityFlags(this.agent);\n const hooks = getRuntimeHooks(this.agent);\n return {\n agent: this.agent,\n canResume: Boolean(flags.canResume),\n supportsMCP: Boolean(flags.supportsMCP),\n runtimeHooks: {\n preToolUse: hooks.preToolUse ?? 'nonblocking',\n // ...\n },\n installMethods: getInstallMethods(this.agent).map(m => ({\n platform: 'all', type: m.type, command: m.command,\n })),\n };\n }\n}\n```\n\n### Evidence System\n\nThe graph tracks evidence quality for each capability claim:\n\n| Level | Meaning |\n|-------|---------|\n| `corroborated` | Multiple independent sources confirm |\n| `partial` | Some evidence but gaps remain |\n| `inferred` | Derived from related evidence |\n| `unresolved-gap` | No evidence found yet |\n\nEvidence is linked via `sourced_from:` edges from capability support nodes to evidence records.\n\n### Graph Build Pipeline\n\n```\npackages/atlas/graph/**/*.yaml\n → atlas indexer (scripts/build-index.mjs)\n → packages/atlas/src/index.json (37MB)\n → imported by agent-catalog at build time\n → query functions available at runtime\n```\n",
"documents": []
},
"outgoingEdges": [],
"incomingEdges": [
{
"from": "page:docs-development",
"to": "page:docs-development-02-atlas-graph-and-agent-catalog",
"kind": "contains_page"
}
]
}