Introduce persisted Web Studio component capabilities

This commit is contained in:
2026-09-04 21:03:09 -07:00
parent f4987093f6
commit fd039f095b
17 changed files with 2459 additions and 1609 deletions
@@ -19,80 +19,85 @@ STATE=18
EDGE=19
PROJECTION=20
WITH=21
ON=22
POLICY=23
DEFAULT=24
SOURCE=25
REPOSITORY=26
COMMIT=27
REVISION=28
ID=29
DOC=30
MODE=31
EMITS=32
RECEIVER=33
REQUIRES=34
ANY=35
GET=36
SET=37
WATCH=38
START=39
STOP=40
READ=41
WRITE=42
RESOLVE=43
CONNECT=44
DISCONNECT=45
CALL=46
WATCH_START=47
WATCH_STOP=48
SUBSCRIBE=49
UNSUBSCRIBE=50
OPTIMISTIC_REGISTER=51
CRDT=52
OPTIONAL_ONE=53
EXACTLY_ONE=54
MANY_UNIQUE=55
MANY=56
ORDERED=57
UNIT=58
WATCH_HANDLE=59
MESSAGE=60
ATOM_REF=61
INTERFACE_REF=62
OPTIONAL=63
LIST=64
BOOL=65
BYTES=66
DOUBLE=67
INT32=68
INT64=69
STRING=70
UINT32=71
UINT64=72
TRUE=73
FALSE=74
NULL=75
ARROW=76
COLON=77
SEMI=78
COMMA=79
DOT=80
LBRACE=81
RBRACE=82
LBRACK=83
RBRACK=84
LPAREN=85
RPAREN=86
LT=87
GT=88
INTEGER=89
JSON_NUMBER=90
IDENTIFIER=91
STRING_LITERAL=92
LINE_COMMENT=93
BLOCK_COMMENT=94
WS=95
USING=22
VIA=23
MATERIALIZE=24
IF=25
ABSENT=26
ON=27
POLICY=28
DEFAULT=29
SOURCE=30
REPOSITORY=31
COMMIT=32
REVISION=33
ID=34
DOC=35
MODE=36
EMITS=37
RECEIVER=38
REQUIRES=39
ANY=40
GET=41
SET=42
WATCH=43
START=44
STOP=45
READ=46
WRITE=47
RESOLVE=48
CONNECT=49
DISCONNECT=50
CALL=51
WATCH_START=52
WATCH_STOP=53
SUBSCRIBE=54
UNSUBSCRIBE=55
OPTIMISTIC_REGISTER=56
CRDT=57
OPTIONAL_ONE=58
EXACTLY_ONE=59
MANY_UNIQUE=60
MANY=61
ORDERED=62
UNIT=63
WATCH_HANDLE=64
MESSAGE=65
ATOM_REF=66
INTERFACE_REF=67
OPTIONAL=68
LIST=69
BOOL=70
BYTES=71
DOUBLE=72
INT32=73
INT64=74
STRING=75
UINT32=76
UINT64=77
TRUE=78
FALSE=79
NULL=80
ARROW=81
COLON=82
SEMI=83
COMMA=84
DOT=85
LBRACE=86
RBRACE=87
LBRACK=88
RBRACK=89
LPAREN=90
RPAREN=91
LT=92
GT=93
INTEGER=94
JSON_NUMBER=95
IDENTIFIER=96
STRING_LITERAL=97
LINE_COMMENT=98
BLOCK_COMMENT=99
WS=100
'workspace'=1
'atom'=2
'interface'=3
@@ -114,70 +119,75 @@ WS=95
'edge'=19
'projection'=20
'with'=21
'on'=22
'policy'=23
'default'=24
'source'=25
'repository'=26
'commit'=27
'revision'=28
'id'=29
'doc'=30
'mode'=31
'emits'=32
'receiver'=33
'requires'=34
'any'=35
'get'=36
'set'=37
'watch'=38
'start'=39
'stop'=40
'read'=41
'write'=42
'resolve'=43
'connect'=44
'disconnect'=45
'call'=46
'watch-start'=47
'watch-stop'=48
'subscribe'=49
'unsubscribe'=50
'optimistic-register'=51
'crdt'=52
'optional-one'=53
'exactly-one'=54
'many-unique'=55
'many'=56
'ordered'=57
'unit'=58
'watch-handle'=59
'message'=60
'atom-ref'=61
'interface-ref'=62
'optional'=63
'list'=64
'bool'=65
'bytes'=66
'double'=67
'int32'=68
'int64'=69
'string'=70
'uint32'=71
'uint64'=72
'true'=73
'false'=74
'null'=75
'->'=76
':'=77
';'=78
','=79
'.'=80
'{'=81
'}'=82
'['=83
']'=84
'('=85
')'=86
'<'=87
'>'=88
'using'=22
'via'=23
'materialize'=24
'if'=25
'absent'=26
'on'=27
'policy'=28
'default'=29
'source'=30
'repository'=31
'commit'=32
'revision'=33
'id'=34
'doc'=35
'mode'=36
'emits'=37
'receiver'=38
'requires'=39
'any'=40
'get'=41
'set'=42
'watch'=43
'start'=44
'stop'=45
'read'=46
'write'=47
'resolve'=48
'connect'=49
'disconnect'=50
'call'=51
'watch-start'=52
'watch-stop'=53
'subscribe'=54
'unsubscribe'=55
'optimistic-register'=56
'crdt'=57
'optional-one'=58
'exactly-one'=59
'many-unique'=60
'many'=61
'ordered'=62
'unit'=63
'watch-handle'=64
'message'=65
'atom-ref'=66
'interface-ref'=67
'optional'=68
'list'=69
'bool'=70
'bytes'=71
'double'=72
'int32'=73
'int64'=74
'string'=75
'uint32'=76
'uint64'=77
'true'=78
'false'=79
'null'=80
'->'=81
':'=82
';'=83
','=84
'.'=85
'{'=86
'}'=87
'['=88
']'=89
'('=90
')'=91
'<'=92
'>'=93