acp-probe-v0.0.2
Pre-releaseFeatures
-
New
result.modelConfigfield — the setable model list (#31, #33). ACP describes an agent's models in two different protocol surfaces, and they don't always agree.session/new.models.availableModels[]is the declarative list (best for display);configOptions[id=model].options[]is the contractsetConfigOption('model', X)will accept. On codex-acp 0.12.0 the two are entirely disjoint — 24 compound<model>/<effort>ids inavailableModelsvs 6 bare model names inconfigOptions[model]— and downstream pickers built onavailableModelssilently fail whensetConfigOptionrejects the value (the next prompt finishes withfinishReason: "error"and no error frame). The new derived pointer makes the setable list a one-hop typed lookup:const result = await probeAgent({ command: 'npx @zed-industries/codex-acp@^0.12.0' }) if (result.modelConfig) { for (const id of result.modelConfig.values) { // Every id here is a valid setConfigOption('model', X) input. } }
modelConfigisnullfor agents that don't exposeconfigOptions[id=model]at all (e.g. gemini-cli, wheresetConfigOptionitself returns-32601 method not found). Mirrors the existingresult.reasoningpattern.
Documentation
- New "Picking the right model list" section in the package README with three worked code examples (display browser / mutable picker / rich mutable picker) and a quick-reference table. The "Result shape" overview also lists
modelConfigwith a one-line description.
Internal
- New
EventTranslator-stylederiveModelConfig(configOptions)helper next to the existingderiveReasoningin_internal/normalize.ts. - Unit, integration, and real-agent e2e coverage added across all three fixture agents (claude / codex / gemini). The codex e2e additionally asserts the bare-id invariant — no
/-suffixed values inmodelConfig.valuesagainst the live agent.
Compatibility
- Purely additive.
result.modelsis unchanged (still byte-faithful toavailableModels[]);result.configOptionsis unchanged. No existing consumer breaks. ModelConfigInfo.configIdis typed as the string literal'model'rather thanstring, so consumers that destructure it get type-safety matching the docs.
⚠️ Alpha software
The public API may change between minor versions until 1.0.0. Pin exact versions. Bug reports + design feedback welcome — open an issue on DaniAkash/acpx.
Full Changelog: acp-probe-v0.0.1...acp-probe-v0.0.2