Providers
A3S Code reads runtime configuration from ACL. A config source can be an
.acl file path or an inline ACL string. JSON and legacy HCL configs are not
part of the current config surface.
Basic Shape
apiKey and api_key are accepted aliases. baseUrl and base_url are
accepted aliases. Commit templates and non-secret defaults only; keep real API
keys, private endpoints, and account-specific model names in the environment or
in a secret manager.
Provider Families
The built-in factory covers three paths:
The runtime does not hard-code model names. default_model and per-session
model values are identifiers in the provider/model-id form that must match
the provider blocks you define.
Delegation Controls
max_parallel_tasks limits bounded sibling fan-out. auto_delegation.enabled
turns on automatic subagent delegation. The top-level auto_parallel = false
overrides auto_delegation.auto_parallel and disables only automatic parallel
child-agent fan-out; manual task and parallel_task remain available. When
allow_manual_delegation = false, both model-visible child-agent tools are
removed from the session tool surface.
Storage
Use memory storage for short-lived tests. Use storage_backend = "file" plus
sessions_dir for resumable local sessions loaded from ACL. storage_url is
parsed for custom storage metadata, but it does not create a file-backed
session store by itself. SDK hosts can always pass
sessionStore: new FileSessionStore(...) /
opts.session_store = FileSessionStore(...) directly.
Private Provider Checks
Real-provider smoke tests should point at a local, git-ignored ACL file through
A3S_CONFIG_FILE. Do not copy provider values into commands, logs, docs, pull
requests, or committed fixtures.
SDK parity is covered by a separate real-provider check:
Keep the provider evidence with the release or CI artifact, not in the public documentation. For the complete local API surface, see API Contract.