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 · 0

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/sdk, babysitter run:*, task:*, hook:*, plugin:*Event-sourced runs, task effects, process state, generic plugin registry, SDK harness install commandsModel session UI, agent-mux adapter registry, provider transport implementation
SDK harness setupbabysitter harness:install, babysitter harness:install-pluginInstalling external harness CLIs where supported and installing Babysitter harness pluginsbabysitter-agent runtime behavior
Babysitter-agent runtimepackages/babysitter-agent runtime CLIRuntime orchestration UX, model-backed planning/execution, agent-core path, agent-mux bridge for external harness invocationHarness plugin installation and setup commands
Agent-mux corepackages/agent-mux/core, @a5c-ai/agent-muxAdapter registry, createClient().run, sessions, workspaces, plugin manager, runtime hooks, provider/model configBabysitter run journal ownership
Agent-mux adapterspackages/agent-mux/adaptersPer-agent spawn/programmatic adapters, capabilities, session parsing, adapter plugin APIs when supportedGeneric Babysitter process orchestration
Transport-muxpackages/transport-muxHarness-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 agent-mux adapter/session semantics without a consumer
Hooks-muxpackages/hooks-mux/*Normalizing raw hook payloads and merge/policy behavior across harnessesAgent-mux runtime hook dispatch and SDK stop-hook iteration policy
Agent-corepackages/agent-coreProgrammatic model session backend and tool-call loop used by internal/runtime pathsExternal harness plugin installation
Agent-plugins-muxpackages/agent-plugins-muxPlugin 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 manifestsbabysitter-agent runtime correctness
Agent-mux adapter/session E2Eamux 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
Agent-mux plugin E2Eamux 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 agent-mux E2EAgent-mux starts an external harness session after the Babysitter harness plugin is installedHarness-specific Babysitter plugin installed by SDK installer or native plugin path, then amux run <agent>The plugin command such as /babysitter:call creates a Babysitter run, completes it, and hook/stop behavior is visible from the harness sessionbabysitter-agent install/setup behavior
Babysitter-agent runtime E2Ebabysitter-agent runtime commandsPreinstalled or mocked model backend; no setup command inside the testRuntime planning/orchestration, selected backend, run lifecycle, task posting, agent-core or agent-mux bridge behaviorHarness plugin installation
Transport-mux E2Eamux-proxy, startTransportMuxRuntime, applyTransportMuxToHarnessEnv, or amux launch --with-proxy*Local route fixture, agent-core stream, or agent-mux 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-mux E2EHook adapter CLI/core normalizerRaw hook payload fixtures or redacted live payloadsHook normalization, merge policy, fail-open/fail-closed behaviorAgent-mux session lifecycle by itself

Transport-Mux Valid Permutations

Transport-mux 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 agent-mux 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 amux-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 applyTransportMuxToHarnessEnvAMUX_PROXY_BASE_URL, AMUX_PROXY_AUTH_TOKEN, and provider-specific base URL/API key variables are injected only for the exposed transport, with token values redacted in artifacts
Agent-mux 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
Agent-core stream through transportNo-model and model-backedAgent-core event stream consumed through transport-muxFixture or live deltas, final event, cancellation, timeout, and usage metadata survive transport framing
External harness through agent-mux proxyModel-backedamux 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 harnessAgent-mux 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 validAgent-mux session, agent-mux plugin manager, Babysitter plugin through agent-mux, babysitter-agent external-harness bridge
codexcodex maps to codexCapability-gated; current Codex adapter reports supportsPlugins: false, so do not require agent-mux client.plugins.* for CodexRuntime hook fixtures are valid; live plugin manager install is not assumedAgent-mux session, SDK harness plugin installer, Babysitter plugin through Codex only after installer/native plugin support is proven, babysitter-agent external-harness bridge
gemini-cli / geminigemini-cli maps to geminiCapability-gated by adapterRuntime hook fixture first, live after adapter support is provenAgent-mux session and SDK installer smoke; plugin E2E only after capability proof
agent-coreNot an agent-mux external harness mappingNo harness plugin installProgrammatic event hooks through owning layer onlyBabysitter-agent internal/programmatic runtime, transport-mux with agent-core stream
piIntentionally not agent-mux in babysitter-agent mappingSDK plugin installer may exist, but runtime path is direct/agent-core-likeDo not route through agent-mux bridgeDirect SDK/babysitter-agent path only
babysitter adapter in agent-muxAgent-mux can target Babysitter as an adapterBabysitter plugin manager is generic SDK plugin registry, not external harness plugin installAdapter parses Babysitter event outputAgent-mux consuming Babysitter output; separate from babysitter-agent 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 babysitter-agent runtime behavior
Agent-mux plugin-manager test that requires Codex plugin install without checking supportsPluginsCurrent Codex adapter reports plugin manager support as false
Transport-mux test that asserts plugin installationTransport-mux carries harness-facing provider traffic; SDK harness setup or agent-mux plugin APIs own plugin installation
Transport-mux test that runs babysitter harness:installHarness install belongs to SDK harness setup, not the proxy runtime
Transport-mux test that asserts hook normalizationHooks-mux owns hook payload normalization; transport-mux may only carry traffic adjacent to a hook-emitting harness
Transport-mux test that claims Babysitter run completion by itselfBabysitter SDK or babysitter-agent owns run creation, task posting, and terminal journal state
Hooks-mux fixture that claims full agent-mux session coverageHooks-mux normalizes hook payloads; agent-mux owns session lifecycle
Agent-core path routed through agent-mux external-harness mappingThe babysitter-agent map explicitly excludes agent-core and pi from agent-mux 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-modelAgent-mux core + mock adapter + runtime hookssession_start, prompt/input, session_end, stop-hook decision fixture
P4No-modelAgent-mux PluginManager + plugin-capable adapter fixturelist/install/uninstall/update behavior and capability errors for non-plugin agents
P5No-modelTransport-mux route/codec fixturesupported route matrix, auth failure, invalid JSON, count_tokens supported/unsupported, streaming and non-streaming response artifacts
P5aNo-modelTransport-mux runtime env bridge + agent-mux launch decisionredacted env diff, proxy config, proxyNeeded/proxyReason, forced/if-needed/native/forbidden cases
P6No-modelHooks-mux raw payload fixturesnormalized stop/session/tool events and merge-policy artifact
P7Model-backedBabysitter-agent + agent-core backendcreated run, planned task, posted result, terminal state, redacted model trace
P8Model-backedBabysitter-agent + external harness bridgebabysitter-agent call/invoke, agent-mux mapped session events, terminal result, no install steps
P9Model-backedAgent-mux + Claude + Babysitter pluginharness/plugin precondition evidence, amux run claude, /babysitter:call, Babysitter run completion, stop-hook evidence
P10Model-backed/capability-gatedAgent-mux + Codex + Babysitter pluginOnly enabled after plugin install support is proven; otherwise assert skip reason from capability gate
P11Model-backedTransport-mux + agent-core streamlive or credential-gated agent-core deltas carried over transport-mux, cancellation/timeout behavior, redacted provider metadata
P12Model-backedAgent-mux external harness + transport-mux proxyamux launch starts transport-mux, harness uses proxy env, sentinel stream completes, metrics snapshot and redacted launch plan are uploaded
P13No-modelAgent-mux hooks + hooks-mux bridge for claude-code, codex, piamux hooks add/handle, a5c-hooks-mux invoke, normalized phase evidence, no Babysitter SDK calls, no provider credentials
P14No-modelPipeline-owned stack matrix across agent-mux-mocks and real-agent CLI shims for claude, codex, pi, and geminiamux install --dry-run, profile-backed launch/run, transport-mux mock-model request evidence, and optional hooks-mux 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-Mux Live Install Modes

The live external-harness matrix has two valid agent-mux paths:

ModeValid targetsInstaller responsibilityPrompt responsibilityLifecycle responsibility
babysitter-pluginclaude-code via claude, codex, gemini-cli via gemini, piamux 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-mux normalization, agent-mux session, transport trace, and provider trace
vanillaclaude, codex, gemini, pi, babysitteramux install <target> onlyThe launch prompt is a normal non-Babysitter sentinel promptMust prove agent-mux session/launch, transport trace, and provider trace; it must not claim plugin-driven external-harness hook coverage; babysitter-agent rows may additionally assert agent-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 agent-mux 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