Hey Anna app developers! ![]()
Weβve just shipped two fresh releases of the Anna AI CLI, and both are all about making your local dev experience match production even more closely. Update now and enjoy! ![]()
npm i -g @anna-ai/cli@latest
# or
pnpm add -g @anna-ai/cli@latest
v0.1.28 β agent.session.create now passes through your System Prompt
New Features
System prompt support in the local harness! When your app calls agent.session.createwith asystemPrompt(orsystem_prompt), the dev harness now forwards it to the minted agent session β exactly like the production host does.
Dev/prod parity, one step closer. Previously, system prompts were silently dropped in local dev mode, so your agent behaved differently locally vs. in production. Not anymore! What you test locally is what you ship. 
Why youβll love it
If your app gives its agent a personality, domain knowledge, or strict instructions via system prompt, you can now fully rehearse that behavior locally with anna dev β no deploy needed to verify your prompt engineering. ![]()
v0.1.29 β Structured Output (responseFormat) emulation in the Executa sampling bridge
This one is a big quality-of-life win for Executa plugin authors! ![]()
New Features
Full responseFormatsupport in the local sampling bridge. Your Executa plugin can now exercise the complete structured output flow (json_object/json_schema) locally β no real model required.
Platform-faithful validation. The bridge replicates the exact production limits, so you catch invalid requests early with a clean -32004error:typeβ{json_object, json_schema}json_schema.namemust match^[a-zA-Z0-9_-]{1,64}$- schema β€ 32KB, depth β€ 8, nodes β€ 512
onUnsupportedβ{error, json_object, text}
New flag: --sampling-unsupported-format. Simulate a model that doesnβt supportjson_schemaand watch all three fallback branches in action:onUnsupported: "error"(default) β rejects with-32010
onUnsupported: "json_object"β gracefully downgrades to JSON mode
onUnsupported: "text"β drops the constraint and returns plain text
Honest result metadata. Every sampling response with a responseFormatrequest now includes_meta.responseFormatwith{requested, applied, structuredValid, downgraded}β so your plugin always knows exactly what happened.
Real-mode passthrough. Running the bridge in real mode? The negotiated response_formatis forwarded to the platformβs completion endpoint, best-effort.
Why youβll love it
Structured output has three possible outcomes (applied / downgraded / rejected), and until now you could only test them against a live deployment. With v0.1.29 you can rehearse all three branches offline, deterministically, in your test suite. We even added 9 new test cases to prove it (183/183 green
).
Compatibility Notes
Both releases are CLI-only and fully additive β no changes to the wire protocol, dispatcher, schemas, or runtime. PINNED_RUNTIME_VERSIONstays at0.2.0a9.
No matrix / host-side upgrade required. Just update the CLI and go!
Feedback Welcome!
Tried the new structured output emulation? Building an agent with custom system prompts? Weβd love to hear how it goes β drop your feedback, questions, or wild ideas below. Happy building! ![]()
![]()