feat(handoff): add skill-gated handoff action, access control gating, and OAuth expiry fixes - #252
Open
Tharickv75 wants to merge 15 commits into
Open
Tharickv75 wants to merge 15 commits into
Tharickv75 wants to merge 15 commits into
Conversation
…n node Scope the unique user index to LeadProfile and resolve the record by user_node_id so a section save cannot wipe the anchor row. Co-authored-by: Cursor <cursoragent@cursor.com>
…ce a refresh Store the access-token expiry from the code exchange and normalize it to the naive-UTC form google-auth can parse. Co-authored-by: Cursor <cursoragent@cursor.com>
Let a skill declare access-action plus allowed or denied groups so the catalog fails closed when the visitor is not in the right group. Co-authored-by: Cursor <cursoragent@cursor.com>
Give agents contact, notify, and staff Q&A tools behind the handoff skills without changing the existing handoff interact action. Co-authored-by: Cursor <cursoragent@cursor.com>
…tools Updated docstrings for `handoff__contact_details` and `handoff__staff_lookup` to specify their intended use cases. Enhanced the SKILL.md documentation to emphasize that contact details should only be provided upon explicit request, while any unanswerable questions should be directed to staff lookup. This improves clarity for developers and users regarding the functionality of the handoff tools.
…copes Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Clarified usage instructions in `leadgen` and `handoff` skills documentation. Updated `leadgen__retrieve` to specify it should be called mid-conversation and not at the start of a turn. Removed unnecessary references to `extends` in handoff skill files. Adjusted logging level for skill loading in the registry to debug for better traceability.
…nt version to 0.1.8rc19
This branch has not been deployed
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.
Description
Summary
This pull request introduces the new skill-gated handoff capability (
jvagent/handoff_action), skill access control filtering, and improvements to Google OAuth credential handling and lead generation profile persistence.Key updates include:
jvagent/handoff_action): Adds human-support capability tools (handoff__direct_contact,handoff__notify,handoff__staff_inbox, andhandoff__resolve) supported by thejvagent/skills/handofflibrary skill. Enables single staff random routing across WhatsApp/email channels, pending question tracking, and automatic PageIndex Q&A ingestion tohandoff.md.access-actionandallowed-groups/denied-groupsin skill frontmatter to selectively hide or reveal skills in the catalog based onAccessControlAction.user_groups.GoogleActionto properly handle ISO string formats and avoidValueErrorduring token refresh, alongside fixing service binding retention.README.mdforhandoff_action, updated actions catalog and changelog, and updated Dockerfiles/workflows for release versioning (0.1.8rc20-dev1).Type of change
Checklist
CONTRIBUTING.mdand (for subsystem work) the localAGENTS.md.pre-commit run --all-filespasses.pytest tests/passes; I added/updated tests for new behavior.file:linein the description.CHANGELOG.mdupdated where relevant (entry under[Unreleased]).