-
Notifications
You must be signed in to change notification settings - Fork 90
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Qurator Omni: initial public release #4032
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #4032 +/- ##
==========================================
- Coverage 38.11% 37.71% -0.40%
==========================================
Files 735 765 +30
Lines 33844 35149 +1305
Branches 4800 5188 +388
==========================================
+ Hits 12900 13258 +358
- Misses 20320 20658 +338
- Partials 624 1233 +609
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
to support Effect's generator notation
@fiskus pls take a look when you have some spare time (tomorrow-ish?). |
The elephant in the room is This places me in a difficult situation regarding this PR. I can't disagree with the core idea here, because there is already a lot of thoughtful, quality work around it. But I can't commit to use it either. At least, at this moment. |
why? |
On the left: why there is no proper type for output result. Why they throw Error instead of |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some inline comments so far.
Regarding, UI/UX: probably, it makes sense using plain text for user messages.
I didn't have time to read and test it, thoroughly. But from what I can see everything, except some TSFixMe
, XXX
and other not quite finished things, - is quite in a good shape.
Effect could be a good addition to our typescript codebase, though, I would like to have a conversation about it earlier and in a separate place.
probably on oversight, yeah
🤷
these are their standard library component
no, it's just an http error yeah, this looks quite contrived |
what do you mean?
yeah, it's just was the easiest way to interface with tool calls (generate runtime types and matching json schemas). |
Are user messages rendered with Markdown? I used |
oh, that. yes, they are |
Description
Qurator Omni: Context-aware chat-based AI assistant.
The key changes include:
Added a new
Assistant
component with model and UI subcomponents:Model
: Handles the core logic and state management for the assistantUI
: Provides the user interface for interacting with the assistantIntegrated the assistant into the main app layout:
Assistant.Provider
andAssistant.WithUI
components toapp.tsx
Created new context providers for different views:
DirAssistantContext
: Provides context for directory listingsFileAssistantContext
: Provides context for file viewsSearchAssistantContext
: Provides context for search resultsImplemented a new
Navigation
utility for handling route matching and parameter parsingAdded new utility modules:
Actor
: A lightweight state management solutionEffect
: Wrapper around theeffect
library for runtime configurationLogging
: Enhanced logging capabilitiesXML
: Utility for generating XML-like structuresUpdated existing components to integrate with the new assistant:
Search
,Bucket
, and other relevant components to include assistant context providersAdded new dependencies:
effect
: For functional programming patterns@effect/schema
: For runtime type checking and validation@effect/platform
: For platform-specific utilitiesUpdated TypeScript configuration to support new language features
Removed the standalone
Qurator
component in favor of the more integrated assistant approachMade various improvements to existing utilities and components to support the new assistant functionality
This change introduces an AI-powered assistant that can provide context-aware help and information throughout the catalog application.
The assistant is designed to be extensible and can be easily integrated into different parts of the application.
TODO