Add checked React field bindings and Web Studio factories
Replace opaque props with checked generic presentation contracts and lazy typed interface references. Generate readonly/writable field APIs and component checks. Preserve CRDT editing through explicit resolved getter/setter contracts, binding- fenced delta RPCs, native watches and replica-aware field adapters. Custom setters retain semantic writes; storage snapshots never grant write authority. Cover concurrent edits, lost acknowledgements, readonly contracts and authorization. Add receiver-free static factory dispatch, state-field binding shorthand, and conformance-based creation. Migrate TODO, editable scaffolds and authoring guides. Verify language/codegen, SDK, RPC, browser lifecycle, local scaffolds, production browser bundling and CRDT persistence with temporary PostgreSQL.
This commit is contained in:
+44
-3
@@ -9,6 +9,8 @@ import "quixos/runtime.proto";
|
||||
|
||||
service OrchestratorRuntime {
|
||||
rpc InvokeCapability(InvokeCapabilityRequest) returns (InvokeCapabilityResponse);
|
||||
rpc EditCapabilityField(EditCapabilityFieldRequest) returns (InvokeCapabilityResponse);
|
||||
rpc InvokeClassCapability(InvokeClassCapabilityRequest) returns (InvokeCapabilityResponse);
|
||||
rpc WatchCapability(WatchCapabilityRequest) returns (stream WatchCapabilityEvent);
|
||||
rpc ConstructObject(ConstructObjectRequest) returns (ConstructObjectResponse);
|
||||
rpc ResolveOrConstructRelatedObject(ResolveOrConstructRelatedObjectRequest)
|
||||
@@ -46,6 +48,11 @@ message InvokeCapabilityRequest {
|
||||
// layers so a live-value controller can recognize its own confirmation.
|
||||
string client_mutation_id = 4;
|
||||
}
|
||||
message InvokeClassCapabilityRequest {
|
||||
string conformance_id = 1;
|
||||
string operation_id = 2;
|
||||
map<string, camino.Value> input = 3;
|
||||
}
|
||||
message InvokeCapabilityResponse {
|
||||
string invocation_id = 1;
|
||||
Activation activation = 2;
|
||||
@@ -53,6 +60,24 @@ message InvokeCapabilityResponse {
|
||||
camino.Value result = 4;
|
||||
string error = 5;
|
||||
repeated quixos.runtime.DerivedDependency dependencies = 6;
|
||||
FieldEditing field_editing = 7;
|
||||
}
|
||||
|
||||
// Resolved from the checked native getter/setter binding, not Value.source.
|
||||
message FieldEditing {
|
||||
string getter_operation_id = 1;
|
||||
string setter_operation_id = 2;
|
||||
string document_type = 3;
|
||||
string binding_digest = 4;
|
||||
}
|
||||
message EditCapabilityFieldRequest {
|
||||
// The public getter; setter must belong to the same value member.
|
||||
quixos.CapabilityRef capability = 1;
|
||||
string object_id = 2;
|
||||
string setter_operation_id = 3;
|
||||
string binding_digest = 4;
|
||||
camino.CrdtValue update = 5;
|
||||
string client_mutation_id = 6;
|
||||
}
|
||||
|
||||
message WatchCapabilityRequest {
|
||||
@@ -68,18 +93,34 @@ message WatchCapabilityEvent {
|
||||
repeated quixos.runtime.DerivedDependency dependencies = 5;
|
||||
string error = 6;
|
||||
bool initial = 7;
|
||||
FieldEditing field_editing = 8;
|
||||
}
|
||||
|
||||
message GetWorkspaceRequest {}
|
||||
message GetWorkspaceRequest {
|
||||
// Revision polling must not download the entire interface graph.
|
||||
bool include_interface_contracts = 1;
|
||||
}
|
||||
message GetWorkspaceResponse {
|
||||
string workspace_id = 1;
|
||||
string workspace_revision_id = 2;
|
||||
string source_root_commit = 3;
|
||||
// Checked constructors whose wire input can be empty. Web Studio intersects
|
||||
// this with its temporary Createable marker; the marker is not a factory.
|
||||
// Checked constructors whose wire input can be empty. The create panel uses
|
||||
// class factory conformances instead of this constructor inventory.
|
||||
repeated string empty_input_constructible_atom_ids = 4;
|
||||
repeated CapabilityInputContract capability_inputs = 5;
|
||||
repeated ConstructorInputContract constructor_inputs = 6;
|
||||
// Exact closed interface contracts used by checked presentation consumers.
|
||||
string interfaces_json = 7;
|
||||
repeated ClassCapability class_capabilities = 8;
|
||||
}
|
||||
message ClassCapability {
|
||||
string conformance_id = 1;
|
||||
string atom_id = 2;
|
||||
string interface_revision_id = 3;
|
||||
string definition_id = 4;
|
||||
string operation_id = 5;
|
||||
string input_type_json = 6;
|
||||
string output_type_json = 7;
|
||||
}
|
||||
message CapabilityInputContract {
|
||||
string interface_revision_id = 1;
|
||||
|
||||
Reference in New Issue
Block a user