π¦ New version release - #503
Open
brentrager wants to merge 1 commit into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@smooai/smooth-operator@1.55.2
Patch Changes
6120535: dotnet-server: port the
identity_intakeRich Interaction kind + add the kind-routed host-effect seam.The .NET server now hosts a second Rich Interaction kind alongside
choices:identity_intake(structured name/email/phone lead capture, capabilityidentity_form).It mirrors the Rust reference: the
request_identity_intakeraise tool, a server-sidevalidator (required-field presence, email shape, phone β E.164 normalization, per-field
errors reported one-pass), and the conversational fallback directive for text-only channels.
This wave also adds the one framework piece the
choiceswave omitted: a kind-agnostichost-effect seam.
IInteractionKindgains an optionalApplyEffecthook (no-op default,so
choicesis unaffected); the caller resolves the kind from the DI-providedInteractionCatalogand runs its effect without knowing which kind it is. It fires on BOTHsubmit paths β the rich
submit_interactionframe (FrameDispatcher) and the genericsubmit_interactiontool (the conversational fallback, wired through the turn runner).identity_intake's effect stamps the captured, normalized contact onto a session-keyedin-memory overlay (
SessionIdentityRegistry) β the C# analog of the Rust reference'sin-memory session metadata (
userName/contactEmail/contactPhone) β which the OTPcontact seam now reads alongside the create-session email, so a captured email/phone (phone β
SMS) becomes OTP-contactable on the next turn.
Tests: validator unit tests (+ shared-fixture cross-check against the Rust reference) and WS
park/resume integration tests on both the rich and conversational-fallback paths that assert
the host effect stamped the session and left it OTP-contactable.
@smooai/smooth-operator-web-chat-example@0.0.100
Patch Changes
@smooai/smooth-operator-server@1.15.1
Patch Changes
af092bf: Port the
identity_intakeRich Interaction kind to the Python server, plus the kind-routed host-effect seam thechoiceswave omitted.identity_intakeis structured name/email/phone lead capture β the second interaction kind (afterchoices), mirroring the Rust reference. Itsrequest_identity_intakeraise tool ({ fields, reason }) parks the turn on channels that declare theidentity_formcapability and degrades to a conversational directive on text-only channels; both paths run one server-side validator (required fields present, email shape, phone normalized to E.164, per-field errors) and resume with the same canonical payload.New framework piece: a kind-agnostic host effect (
InteractionKind.host_effect, a no-op by default) fires on a valid submit on BOTH paths β the dispatcher'ssubmit_interactionaction and the conversational-fallbacksubmit_interactiontool.identity_intakeoverrides it to stamp the captured contacts onto the session (user_name/contact_email/contact_phoneβ the same keys the pre-chat create path stashes and the OTP contact seam reads), so a captured contact is immediately OTP-verifiable (email and/or SMS).choicesis unaffected. Registered in the default interaction catalog alongsidechoices.