Agentic AI Atlasby a5c.ai
OverviewWikiGraphFor AgentsEdgesSearchWorkspace
/
GitHubDocsDiscord
iiRecord
Agentic AI Atlas · Stack Permutations
page:docs-testing-stack-permutationsa5c.ai
Search record views/
Record · tabs

Available views

II.Record viewspp. 1 - 1
overviewarticlejsongraph
III.Related pagespp. 1 - 1
II.
Page reference

page:docs-testing-stack-permutations

Reading · 10 min

Stack Permutations reference

The test strategy must treat the stack as modular. A valid E2E does not need every layer, and some layer combinations are invalid even if the names sound related.

Pagewiki/docs/testing/stack-permutations.mdOutgoing · 0Incoming · 1

Stack Permutations

The test strategy must treat the stack as modular. A valid E2E does not need every layer, and some layer combinations are invalid even if the names sound related.

Layer Map

LayerPackage or surfaceOwnsDoes not own
Core Babysitter SDKpackages/babysitter-sdk, babysitter run:*, task:*, hook:*, plugin:*Event-sourced runs, task effects, process state, generic plugin registry, SDK harness install commandsModel session UI, adapters adapter registry, provider transport implementation
SDK harness setupbabysitter harness:install, babysitter harness:install-pluginInstalling external harness CLIs where supported and installing Babysitter harness pluginsagent-platform runtime behavior
Babysitter-agent runtimepackages/genty/platform runtime CLIRuntime orchestration UX, model-backed planning/execution, genty-core path, adapters bridge for external harness invocationHarness plugin installation and setup commands
Adapters corepackages/adapters/core, @a5c-ai/adaptersAdapter registry, createClient().run, sessions, workspaces, plugin manager, runtime hooks, provider/model configBabysitter run journal ownership
Adapters adapterspackages/adapters/adaptersPer-agent spawn/programmatic adapters, capabilities, session parsing, adapter plugin APIs when supportedGeneric Babysitter process orchestration
Transport-adapterpackages/transport-adapterHarness-facing provider protocol routes, local proxy runtime lifecycle, proxy auth, runtime env injection, passthrough forwarding, streaming/non-streaming response shape, cancellation, timeout, and metrics/cache visibilityInstalling harnesses/plugins, normalizing hooks, owning Babysitter journals, or proving adapters adapter/session semantics without a consumer
Hooks-adapterpackages/adapters/hooks/*Normalizing raw hook payloads and merge/policy behavior across harnessesAdapters runtime hook dispatch and SDK stop-hook iteration policy
Agent-corepackages/genty/coreProgrammatic model session backend and tool-call loop used by internal/runtime pathsExternal harness plugin installation
Agent-plugins-adapterpackages/extensions-adapterPlugin target discovery and plugin target contractsRuntime session execution

Primary E2E Paths

PathEntry pointRequired setupWhat it provesWhat it must not claim
SDK run-loop E2Ebabysitter run:create, run:iterate, task:postFixture process and optional mocked hooksProcess state, effects, journal replay, stop-hook continuationProvider or external harness behavior
SDK harness/plugin setup E2Ebabysitter harness:install, babysitter harness:install-pluginTemporary workspace and installer fixtures or real installer runnerHarness install delegation, plugin installer package behavior, idempotent manifestsagent-platform runtime correctness
Adapters adapter/session E2Eadapters run <agent> or createClient().run({ agent })Adapter fixtures or real agent CLI and credentialsAdapter events, session lifecycle, model/provider config, runtime hooksBabysitter process journal correctness unless a plugin invokes Babysitter
Adapters plugin E2Eadapters plugin ... or client.plugins.* where adapter supports pluginsAdapter with supportsPlugins, plugin manifest/marketplace fixture or real plugin targetAgent-native plugin install/list/uninstall and plugin event behaviorUniversal plugin support across all agents
Babysitter plugin through adapters E2EAdapters starts an external harness session after the Babysitter harness plugin is installedHarness-specific Babysitter plugin installed by SDK installer or native plugin path, then adapters run <agent>The plugin command such as /babysitter:call creates a Babysitter run, completes it, and hook/stop behavior is visible from the harness sessionagent-platform install/setup behavior
Babysitter-agent runtime E2Eagent-platform runtime commandsPreinstalled or mocked model backend; no setup command inside the testRuntime planning/orchestration, selected backend, run lifecycle, task posting, genty-core or adapters bridge behaviorHarness plugin installation
Transport-adapter E2Eadapters-proxy, startTransportMuxRuntime, applyTransportMuxToHarnessEnv, or adapters launch --with-proxy*Local route fixture, genty-core stream, or adapters external-harness launch that needs a proxy bridgeRoute/codec contract, proxy auth, env injection, launch proxy decision, streaming/non-streaming response shape, cancellation, timeout, passthrough, metrics/cache artifactsPlugin install, harness install, hook normalization, or Babysitter run lifecycle by itself
Hooks-adapter E2EHook adapter CLI/core normalizerRaw hook payload fixtures or redacted live payloadsHook normalization, merge policy, fail-open/fail-closed behaviorAdapters session lifecycle by itself

Transport-Adapter Valid Permutations

Transport-adapter is the carrier/proxy seam between a harness-facing protocol and a target provider/runtime. It can be tested alone with local fixtures, or as a bridge started by adapters launch, but it is not a plugin manager, harness installer, hook adapter, or Babysitter run owner.

PermutationLaneEntry pointRequired assertions
Package route/codec fixtureNo-modelcreateTransportMuxApp or adapters-proxy with fixture engine/health, /v1/models, /metrics, /cache/stats, /v1/count_tokens, /v1/messages, /v1/chat/completions, /v1/responses, /v1beta/models/*, /v1/projects/*, /converse, /models/chat/completions, and /passthrough/* return the expected protocol shapes and errors
Runtime env bridgeNo-modelstartTransportMuxRuntime and applyTransportMuxToHarnessEnvADAPTERS_PROXY_BASE_URL, ADAPTERS_PROXY_AUTH_TOKEN, and provider-specific base URL/API key variables are injected only for the exposed transport, with token values redacted in artifacts
Adapters launch decisionNo-modelresolveLaunchPlan and launch dry-run fixturesNative provider, proxy forced, proxy if-needed, and proxy forbidden cases produce the expected proxyNeeded, proxyReason, and exposed transport
genty-core stream through transportNo-model and model-backedAgent-core event stream consumed through transport-adapterFixture or live deltas, final event, cancellation, timeout, and usage metadata survive transport framing
External harness through adapters proxyModel-backedadapters launch <harness> <provider> --with-proxy or --with-proxy-if-neededReal Codex/Claude-compatible harness traffic uses the local proxy URL, emits a redacted launch plan, and completes a sentinel stream
Passthrough provider bridgeNo-model first, model-backed only when justified/passthrough/* with configured apiBasePath/query/body forwarding, auth propagation, upstream failure mapping, and timeout behavior are visible without leaking provider secrets

Capability-Gated Adapter Matrix

Agent or harnessAdapters adapter mappingCurrent plugin-manager expectationRuntime-hook expectationValid live permutations
claude-code / claudeclaude-code maps to claudeValid where the Claude adapter exposes plugin APIsNative/runtime hook coverage including stop hook is validAdapters session, adapters plugin manager, Babysitter plugin through adapters, agent-platform external-harness bridge
codexcodex maps to codexCapability-gated; current Codex adapter reports supportsPlugins: false, so do not require adapters client.plugins.* for CodexRuntime hook fixtures are valid; live plugin manager install is not assumedAdapters session, SDK harness plugin installer, Babysitter plugin through Codex only after installer/native plugin support is proven, agent-platform external-harness bridge
gemini-cli / geminigemini-cli maps to geminiCapability-gated by adapterRuntime hook fixture first, live after adapter support is provenAdapters session and SDK installer smoke; plugin E2E only after capability proof
genty-coreNot an adapters external harness mappingNo harness plugin installProgrammatic event hooks through owning layer onlyBabysitter-agent internal/programmatic runtime, transport-adapter with genty-core stream
piIntentionally not adapters in agent-platform mappingSDK plugin installer may exist, but runtime path is dire../core-likeDo not route through adapters bridgeDirect S../platform path only
babysitter adapter in adaptersAdapters can target Babysitter as an adapterBabysitter plugin manager is generic SDK plugin registry, not external harness plugin installAdapter parses Babysitter event outputAdapters consuming Babysitter output; separate from agent-platform runtime setup

Invalid Combinations

Invalid combinationWhy it is invalid
Babysitter-agent E2E that starts with babysitter harness:install or harness:install-pluginThat tests SDK harness setup, not agent-platform runtime behavior
Adapters plugin-manager test that requires Codex plugin install without checking supportsPluginsCurrent Codex adapter reports plugin manager support as false
Transport-adapter test that asserts plugin installationTransport-adapter carries harness-facing provider traffic; SDK harness setup or adapters plugin APIs own plugin installation
Transport-adapter test that runs babysitter harness:installHarness install belongs to SDK harness setup, not the proxy runtime
Transport-adapter test that asserts hook normalizationHooks-adapter owns hook payload normalization; transport-adapter may only carry traffic adjacent to a hook-emitting harness
Transport-adapter test that claims Babysitter run completion by itselfBabysitter SDK or agent-platform owns run creation, task posting, and terminal journal state
Hooks-adapter fixture that claims full adapters session coverageHooks-adapter normalizes hook payloads; adapters owns session lifecycle
genty-core path routed through adapters external-harness mappingThe agent-platform map explicitly excludes genty-core and pi from adapters external harness mapping
/babysitter:call plugin smoke that only checks final assistant textIt must assert Babysitter run ID, run events, terminal state, and hook evidence

Minimum Permutation Set

The rebuilt strategy should implement these before claiming broad E2E coverage:

IDLaneStackRequired evidence
P1No-modelSDK run loop + mocked stop hookrun:create, pending task, task:post, run:iterate, completed proof, hook log
P2No-modelSDK harness installer + plugin installer dry-runsJSON install plan, plugin target, idempotency fixture
P3No-modelAdapters core + mock adapter + runtime hookssession_start, prompt/input, session_end, stop-hook decision fixture
P4No-modelAdapters PluginManager + plugin-capable adapter fixturelist/install/uninstall/update behavior and capability errors for non-plugin agents
P5No-modelTransport-adapter route/codec fixturesupported route matrix, auth failure, invalid JSON, count_tokens supported/unsupported, streaming and non-streaming response artifacts
P5aNo-modelTransport-adapter runtime env bridge + adapters launch decisionredacted env diff, proxy config, proxyNeeded/proxyReason, forced/if-needed/native/forbidden cases
P6No-modelHooks-adapter raw payload fixturesnormalized stop/session/tool events and merge-policy artifact
P7Model-backedBabysitter-agent + genty-core backendcreated run, planned task, posted result, terminal state, redacted model trace
P8Model-backedBabysitter-agent + external harness bridgeagent-platform call/invoke, adapters mapped session events, terminal result, no install steps
P9Model-backedAdapters + Claude + Babysitter pluginharness/plugin precondition evidence, adapters run claude, /babysitter:call, Babysitter run completion, stop-hook evidence
P10Model-backed/capability-gatedAdapters + Codex + Babysitter pluginOnly enabled after plugin install support is proven; otherwise assert skip reason from capability gate
P11Model-backedTransport-adapter + genty-core streamlive or credential-gated genty-core deltas carried over transport-adapter, cancellation/timeout behavior, redacted provider metadata
P12Model-backedAdapters external harness + transport-adapter proxyadapters launch starts transport-adapter, harness uses proxy env, sentinel stream completes, metrics snapshot and redacted launch plan are uploaded
P13No-modelAdapters hooks + hooks-adapter bridge for claude-code, codex, piadapters hooks add/handle, a5c-hooks-adapter invoke, normalized phase evidence, no Babysitter SDK calls, no provider credentials
P14No-modelPipeline-owned stack matrix across adapters-mocks and real-agent CLI shims for claude, codex, pi, and geminiadapters install --dry-run, profile-backed launch/run, transport-adapter mock-model request evidence, and optional hooks-adapter normalized phase artifact from no_model_mock_matrix

Each implementation slice should name which permutation IDs it covers. If a job covers only setup, it should not be labeled as runtime E2E.

Agent-Adapter Live Install Modes

The live external-harness matrix has two valid adapters paths:

ModeValid targetsInstaller responsibilityPrompt responsibilityLifecycle responsibility
babysitter-pluginclaude-code via claude, codex, gemini-cli via gemini, piadapters install <target> installs or verifies the harness CLI; the local Babysitter SDK and generated Babysitter plugin package are installed before launchThe launch prompt is a Babysitter command, for example /babysitter:call ...Must prove Babysitter run creation, effects, journals/task artifacts, native stop hook execution, hooks-adapter normalization, adapters session, transport trace, and provider trace
vanillaclaude, codex, gemini, pi, babysitteradapters install <target> onlyThe launch prompt is a normal non-Babysitter sentinel promptMust prove adapters session/launch, transport trace, and provider trace; it must not claim plugin-driven external-harness hook coverage; agent-platform rows may additionally assert genty-core-backed Babysitter runtime evidence when required

These are different integration paths. babysitter-plugin validates plugin-mediated Babysitter lifecycle behavior through an external harness; vanilla validates the same adapters install/launch/provider path without Babysitter plugin setup.

Article source

The article body is owned directly by this record.

Related pages

No related wiki pages for this record.

Shortcuts

Open overview
Open JSON
Open graph