feat(portal): custom AI assistant page block with always-on tools and page filter controls#66
Merged
Conversation
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…l get/set Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ant block Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…arams) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add agents-lib Task 0 (new DfAgentChatBlock in @data-fair/lib-vuetify-agents), reduce the portal block to a thin prompt-composing wrapper, and note the published-package dependency bump. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…or DfAgentChatBlock Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Lift the WebMCP frame server + base tool registration out of agent-chat.vue into an always-mounted client-only host (usePortalAgentHost + PortalAgentHost in app.vue). The agentChat.active toggle now only gates chat display. Also extract the shared portal-context prompt helper reused by the global agent. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…rams Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
New element-custom-agent def in page-element-functional (title, systemPrompt, focusDatasets, height, mb); appended to the page-elements oneOf at index 38 to keep existing discriminator indices stable, with a Functional-group label. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…typing Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ataset interactions - waitForFunction needs (fn, arg, options) — the 2-arg form ignored the timeout - DfAgentChatBlock stores init config under sessionStorage key df-agent-init-config:block - dataset-table interactions is a boolean, not an array Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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.
Add a new
custom-agentpage element that embeds an inline AI assistant chat in portal pages, with configurable title, system prompt, focus datasets, and visibility controls.What changed:
agentChat.activetoggle — tools are now always available on the BroadcastChannel (Piece 1:use-portal-agent-host.tsextracted fromagent-chat.vue)pageFilters_get/pageFilters_setagent tools operating onreactiveSearchParams, plus per-blockdescribe_filters_<uuid>tools for shared-filters elements (Piece 2:page-params-tools.ts,page-filter-describe-tool.ts)custom-agentpage element schema and component with composed system prompt, focus datasets, and role-based visibility (Piece 3:page-element-custom-agent.vue,element-custom-agentin functional schema)@data-fair/lib-vue-agents0.4.0,@data-fair/lib-vuetify-agents0.6.0,@data-fair/agent-tools-data-fair0.3.4Why: Allow portal admins to embed purpose-built AI assistants on specific portal pages, scoped to particular datasets and topics, with filter-driving capabilities.
Regression risks:
agentChat.active: false) — admins who disabled the chat expecting full agent disablement will still have tools on the channelusePageParamsToolsregisters at the root<page-elements>— verify nested instances all pass:root="false"to avoid duplicate registrationpageFilters_setdoes not validate key prefixes — an agent can set arbitrary query paramslib-vue-agents0.3→0.4 andlib-vuetify-agents0.5→0.6 peer dependency change signals a breaking API change in the agents lib