feat(web_core): refine SurfaceModel and SurfaceComponentsModel for Python SDK parity - #2310
Open
gspencergoog wants to merge 5 commits into
Open
feat(web_core): refine SurfaceModel and SurfaceComponentsModel for Python SDK parity#2310gspencergoog wants to merge 5 commits into
gspencergoog wants to merge 5 commits into
Conversation
gspencergoog
force-pushed
the
v1_0_polishing_ts
branch
from
August 17, 2026 22:45
f175d39 to
489e6cf
Compare
gspencergoog
force-pushed
the
v1_0_polishing_ts
branch
2 times, most recently
from
August 18, 2026 00:19
91347d4 to
336da84
Compare
gspencergoog
force-pushed
the
v1_0_polishing_ts
branch
from
August 18, 2026 00:20
336da84 to
23189b6
Compare
gspencergoog
force-pushed
the
v1_0_polishing_ts
branch
from
August 18, 2026 00:53
23189b6 to
c7eb912
Compare
gspencergoog
force-pushed
the
v1_0_polishing_ts
branch
2 times, most recently
from
August 18, 2026 00:59
57b10d0 to
d028d83
Compare
gspencergoog
force-pushed
the
v1_0_polishing_ts
branch
from
August 18, 2026 01:10
d028d83 to
203ef60
Compare
gspencergoog
force-pushed
the
v1_0_polishing_ts
branch
from
August 18, 2026 01:43
203ef60 to
701f85d
Compare
gspencergoog
force-pushed
the
v1_0_polishing_ts
branch
from
August 18, 2026 01:50
701f85d to
3b081ba
Compare
gspencergoog
force-pushed
the
v1_0_polishing_ts
branch
from
August 18, 2026 17:50
3b081ba to
887384f
Compare
gspencergoog
force-pushed
the
v1_0_polishing_ts
branch
from
August 18, 2026 18:00
887384f to
375aead
Compare
gspencergoog
force-pushed
the
v1_0_polishing_ts
branch
from
August 18, 2026 18:20
375aead to
f0b33bf
Compare
gspencergoog
force-pushed
the
v1_0_polishing_ts
branch
from
August 18, 2026 20:06
f0b33bf to
5c3792f
Compare
…ation and catalog fallback
…Action - Ensure dispatchAction validates that the payload contains a valid event wrapper, functionCall wrapper, or flat name/call property - Return early if eventPayload or name is missing or invalid - Add unit tests for malformed and missing action payloads in surface-model.test.ts
gspencergoog
force-pushed
the
v1_0_polishing_ts
branch
from
August 18, 2026 20:13
5c3792f to
35381c3
Compare
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.
PR Description: Refine Web Core Surface Manager & Framework Adapter State Models (
v1_0_polishing_ts)Summary
This PR implements Stage 4 Step 4.5 (
Polishing-TS) of the A2UI v1.0 Implementation Plan. It refines the Web Core TypeScript state models (SurfaceModelandSurfaceComponentsModel) to achieve 100% API parity with the Python Core SDK (a2ui_core).Stacking Structure
This PR is stacked on top of the Stage 3 Sauce PR (
v1_0_sauce_ts):v1_0_sauce_tsv1_0_polishing_tsKey Changes
SurfaceModelDataModel Constructor Parameter: Updated constructor to accept an optionaldataModel?: DataModelinstance instead of forcing instantiation of an empty DataModel, matchingpython/a2ui_core.dispatchAction(payload, sourceComponentId)to handle bothevent({ name, context }) andfunctionCall({ call, args }) action payload structures.SurfaceComponentsModel.componentsMap: AddedcomponentsMapreadonly map accessor to mirrorSurfaceGroupModel.surfacesMapfor framework renderers (Angular, React, Lit).surface-model.test.tsandsurface-components-model.test.tsverifying custom data model injection, function call action dispatching, and map access.Verification
npx tsc --noEmitpassed with 0 errors.yarn testpassed 298/298 unit tests cleanly intypescript/web_core.