* AI Chat Tools ConversationAPI implementation
Note that our internal representation of Tool use requests and responses is to group them in the same struct - ToolUseEvent, but the OAI style API represents them differently (likely to preserve history structure and simplify the API definition). We put them in the same object for ease of access and UI rendering. Otherwise there would be a lot of cases of searching history to find a relevant tool use response for a given tool use request.
In order to keep this submission size as small as possible, it only includes what's necessary to construct calls to the ConversationAPI. Subsequent submissions will be:
- ConversationHandler getting an agentic loop to perform the usage of the Tools and send the responses back to the engine
- UI representation for tool uses
- Tool implementations
[json64] Make `base_unittests` a default suite
This change adds `base_unittests` to the list of default suits to be
built and run with brave. This is being done so we have full test
coverage over the default code paths
`base::Value`/`JSONReader`/JSONWriter`, as these classes are having
overrides added to them to support 64bit numbers, but we have to make
sure we are not breaking the default behaviour.
Resolves https://github.com/brave/brave-browser/issues/47643
This change introduces the ability to customize how many items appear as quick actions (grid buttons) in the browser menu, with more than 4 creating multiple rows of grid items. It also introduces a new "Reset to Default" button at the bottom of the customize screen to allow users to reset back to the stock menu.
This PR is the first of a couple of changes to allow us to parse, and
carry over JSON content 64bit integer representation. This is currently
not possible, as Chromium's `base::Value` only support a range of
integer values that is valid to be represented JS.
This work aims to store integer values outside the allowed boundaries as
binary data into `base::Value`. This will be done through customisations
to `base::JSONReader`, and `base::JSONWriter`. Additionally, most of the
complexity will hopefully be hidden away by code generators in the
json-schema-compiler.
This first PR adds hooks into the visitor for `serde_json_lenient` that
will allow us to provide the special conversions to binary blob data for
large 64bit values that fall outside of what can be represented as
double without loss.
This PR is also introducing a build flag, namely,
`enable_json_64bit_int_support`, to allow us to have some compile time
control over to switch this feature off. This is necessary, as
`redirect_cc` cannot build `//brave/chromium_src` files the same way a
normal Brave build does, and therefore it is necessary to be able to
switch of these customisations in that mode.
Resolves https://github.com/brave/brave-browser/issues/47119
Remove the delay for expanding vertical tabs when hovering over the region
We had experimented with a delay for expanding vertical tabs, but it has been
decided to remove this delay for a more immediate user experience. This change
ensures that when the user hovers over the vertical tab strip region, it will
expand immediately without waiting for a specified time.
In favor of 'Customize Chrome' side panel, we're moving toggle
items from the settings page to the side panel. This commit removes
the toolbar customization toggles from the settings page and
resurrect link button to open the side panel.
<!-- Add brave-browser issue below that this PR will resolve -->
Resolves https://github.com/brave/brave-browser/issues/47628
Add multi value flag for vertical tab collapse delay
We need to explore the possibility of adding a delay before collapsing
the vertical tab strip when the mouse exits the tab strip in floating
mode. This will help prevent accidental collapses when users are
interacting with the tabs.
This change introduces a new flag with multiple predefined milliseconds
values for the collapse delay, similar to the existing expand delay flag.