forked from breadboard-ai/breadboard
-
Notifications
You must be signed in to change notification settings - Fork 0
[pull] main from breadboard-ai:main #170
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
Open
pull
wants to merge
3,263
commits into
ExaDev:main
Choose a base branch
from
breadboard-ai:main
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
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
- **Revert "undismissable" logic.** - **Introduce tri-state sign-in response, adding "dismissed".** - **Handle dismissal/failure when the user is loading a non-public opal.** - **Introduce `viewError` and start showing it in cases when we aren't in any of other states.**
Prevent snackbar rendering logic from getting into an infinite loop when it doesn't have the snackbar element.
- **Add consent message machinery** - **Teach markdown directive to always open links in new tab.**
## Summary
This PR adds support for a streaming GenerateWebpage API, controlled by
the `streamGenWebpage` feature flag.
## Changes
### Feature Flag
- Added `streamGenWebpage` flag to `packages/types/src/flags.ts`
- Added default value in
`packages/shared-ui/src/config/client-deployment-configuration.ts`
- Added server-side config in
`packages/unified-server/src/server/config.ts` and `flags.ts`
### Streaming Implementation
- Created `packages/a2/src/a2/generate-webpage-stream.ts` with:
- `executeWebpageStream`: Main streaming execution function
- `buildStreamingRequestBody`: Builds the API request body
- `parseStoredDataUrl`: Parses Drive/blob URLs to proper fileData format
- Drive URLs → `drive://{drive_id}`
- Blob URLs → `gs://{blob_id}`
### Bug Fixes
- Returns HTML as `inlineData` with `text/html` mimeType for proper
sandbox rendering
- Added `accessToken` to streaming request body via `fetchWithCreds`
augmentation
### Refactoring
- Simplified `packages/a2/src/a2/html-generator.ts` to use the new
streaming module
- Legacy implementation preserved for non-streaming path
---------
Co-authored-by: Jiayu Huang <jiayuhuang@google.com>
- **Remove unused `RuntimeModuleChangeEvent` event.** - **Remove unused `RuntimeWorkspaceItemChangeEvent`** - **Stop listening to unused `RuntimeBoardRunEvent` events.** - **Remove `disconnectFromBoardServer` method and invocations.**
- **Remove old transforms from client side.** - **Remove old transforms from the server.** - **Remove auth code from server.** - **Remove unused code.**
- **Lift-n-shift all of board-server to unified-server.** - **Delete `board-server` package** - **Make it work again.** - **Move to nicer locations.** - **Even nicer.**
- **Short-cirtuit `getBoardServers` to just return `GoogleDriveBoardServer`.** - **Remove `connectToBoardServer`.** - **Remove all the mounting/storing board server machinery.** - **Remove `idb-board-server` package.** - **Simplify `GoogleDriveBoardServer` construction.** - **Remove `RuntimeBoardServerChangeEvent` and `getBoardServers`.** - **Remove `board-server-management` package.** - **Remove `embedded-board-server` package.**
- **Remove unused `DefaultBoardServer`.** - **Shave down `BoardServer` type.**
- **Stop looking up board servers by name.** - **Preload A2 board server items.** - **Clean up.**
- **Stop using `inflateData` in `addRunModule`** - **Remove `inflateData`.** - **More precise module imports/exports** - **Tigthen exports.**
- **Remove non-functional `blobs` capability** - **Remove `transformContents`** - **Remove `DataStore` and friends.** - **Remove `dataPartTransformer` from `BoardServer`.** - **Simplify `Runtime` initialization a bit.** - **Remove unused codepath in `GoogleDriveDataPartTransformer`.**
- **Be deliberate about which board server we choose. No more arrays.** - **Minimize the use of board server array.** - **Remove unused property.**
…ctor - **refactor: Move runtime dependency instantiation into constructor and simplify its signature.** - **Remove spurious await**
- **feat: Propagate runtime flags to graph store and node describer context, and remove deprecated inspect function.** - **feat: Refactor runtime flag handling to use A2ModuleArgs context instead of a virtual file system.**
…cription status asynchronously - **feat: introduce `FlowGenLLMContentPart` type and use `DataPart` for improved type safety in stream processing.** - **refactor: `FlowGenerator` now uses `RuntimeFlagManager` for feature flag access instead of direct boolean properties.** - **refactor: extract subscription status check into a private method and reorder imports** - **refactor: Remove `kits` and `graphStorePreloader` parameters from visual editor initialization.** - **refactor: remove `defaultBoardService` parameter from bootstrap configuration and usage** - **docs: Add warning against adding async code to the `#init` function.**
- **refactor: Consolidate recent board state management into `RecentBoardStore` with new methods.** - **Make Runtime initialization sync.** - **refactor: Make visual editor initialization synchronous by removing the `#init` method and `#initPromise` property.** - **Tighten up initialization types.**
- **Move unique methods to `index.ts` from `MainBase`.** - **refactor: Move consent request rendering from `index.ts` to `main-base.ts` and update its usage in `index.ts` and `index-lite.ts`.** - **refactor: remove `ready` state property and associated rendering checks** - **refactor: Refine type declarations for `runtime` and `embedHandler` properties.**
We'll now default to full-screen in lite mode after the graph loads if we find that it's not owned by the current user, and also it is not from the featured gallery.
We were not validating on signin at all because of a nullish test instead of a length check. Recent regression.
We used to do this blocking before rendering any page, but since #7351 were omitting the check. Now it happens asynchronously similar to how the access check works.
At the same time we are asynchronously checking we have all required scopes, we now also check that the token is still valid. This catches the case where the user has revoked access through account settings. Note this only affects 3p signin.
) Display a sign-in dialog as fallback for when we were blocked from immediately calling window.open. Safari has a much shorter navigator.userActivation.isActive timeout than Chrome and Firefox, which means that too much time can elapse between the guest asking for a sign-in and the host calling window.open.
- **Make ActionTracker not static.** - **Audit "load" event.** - **Audit "openApp" event.** - **Audit "remixApp" event.** - **Audit "runApp" event.** - **Remove unused "signInPageView" event.** - **Plumb action tracking through the shell host protocol.** - **Implement action tracking in shell host.**
Since we are in an iframe with CSP we can't navigate to a different origin. This breaks the case where Generate steps are asked to create markdown links and output them as part of manual output. This updates the Particle markdown renderer to ensure that there is a `_target` (as well as `noopener` and `noreferrer` values) set.
They changed, and one was deleted
…r instead of heuristic (#7423) During some sign-ins from e.g. the signed-out opal page, we call window.location.reload() because a fresh load is currently required for signin. However, sometimes our guest iframe URLs had been set to a URL that lacked the shell guest /_app/ prefix, so window.location.reload() would end up trying to reload with a shell host URL, and fail with a CSP error. That was happening because we were depending on a heuristic within makeUrl to decide whether the guest prefix should be included, which was whether it included a '?shared' parameter. Combining this with automatic canonicalization logic that the router does meant that the iframe guest sometimes got reset to a having a host url. This PR replaces that heuristic with an explicit `guestPrefixed` property that all calls to makeUrl must include. URLs being used for within-guest navigations have it set to false, and ones for sharing etc. have it set to true.
Now we actually set the theme before we do the switch.
The snackbar was not working in lite mode for a few reasons: - We did not have snackbar event listeners on the prompt input element. That's where prompt rejection errors come from. - We were alternating between 3 different instances of the snackbar element, depending on what lite mode ui state we were in. That meant even if snackbar messages were passed to one snackbar, they could be clobbered when that snackbar stopped being rendered. There was some logic that was trying to graft messages between different snackbar instances, but it didn't seem to be quite working. Anyway, it's much simpler to just have one snackbar the whole time, which we now do.
- **Switch agent to use 3 Flash** - **Organize function names.** - **Add simplest possible outcome viewer.** - **Lots of tweaks to the system prompt.**
- **Organize a2ui set into its own dir.** - **Convert agent evals to use the same layout as a2ui.** - **Add Blog Post Writer eval**
- **Define tool `instancenType`.** - **Pass the whole part to `addTool`** - **Support adding routes with `addTool`.** - **Teach `toPidgin` about routes.** - **Use new route bits in eval** - **Escape HTML when translating to pidgin** - **Vend routes from the file system.** - **Teach success callback to fail sometimes.** - **Add state-detector eval case.** - **Pass a file to print or display.**
- **refactor: Remove `parameterType` from template parts and events, and update routing tool path.** - **Extract useful utilities into reusable functions.** - **Plumb selected node/graph to StepEditor state.** - **Move `fastAccess` state to `stepEditor`.** - **refactor: replace separate node and graph selection properties with a single `nodeSelection` object** - **Plumb `routes` to `FastAccess` state** - **Plumb routes to fast access menu.** - **Clean up types.** - **Handle chip rendering** - **feat: Filter available components to prevent cycles when a node is selected.** - **Bring back targeted fast-access menu.**
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.
See Commits and Changes for more details.
Created by
pull[bot]
Can you help keep this open source service alive? 💖 Please sponsor : )