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:
Vendored
+171
-4
@@ -1,5 +1,5 @@
|
||||
import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
|
||||
import type { CaminoObject, Value } from "../camino/api_pb.js";
|
||||
import type { CaminoObject, CrdtValue, Value } from "../camino/api_pb.js";
|
||||
import type { PackageDescriptor } from "./package_pb.js";
|
||||
import type { CapabilityRef, PackageExportRef } from "./refs_pb.js";
|
||||
import type { DerivedDependency } from "./runtime_pb.js";
|
||||
@@ -113,6 +113,30 @@ export type InvokeCapabilityRequest = Message<"quixos.orch.InvokeCapabilityReque
|
||||
* Use `create(InvokeCapabilityRequestSchema)` to create a new message.
|
||||
*/
|
||||
export declare const InvokeCapabilityRequestSchema: GenMessage<InvokeCapabilityRequest>;
|
||||
/**
|
||||
* @generated from message quixos.orch.InvokeClassCapabilityRequest
|
||||
*/
|
||||
export type InvokeClassCapabilityRequest = Message<"quixos.orch.InvokeClassCapabilityRequest"> & {
|
||||
/**
|
||||
* @generated from field: string conformance_id = 1;
|
||||
*/
|
||||
conformanceId: string;
|
||||
/**
|
||||
* @generated from field: string operation_id = 2;
|
||||
*/
|
||||
operationId: string;
|
||||
/**
|
||||
* @generated from field: map<string, camino.Value> input = 3;
|
||||
*/
|
||||
input: {
|
||||
[key: string]: Value;
|
||||
};
|
||||
};
|
||||
/**
|
||||
* Describes the message quixos.orch.InvokeClassCapabilityRequest.
|
||||
* Use `create(InvokeClassCapabilityRequestSchema)` to create a new message.
|
||||
*/
|
||||
export declare const InvokeClassCapabilityRequestSchema: GenMessage<InvokeClassCapabilityRequest>;
|
||||
/**
|
||||
* @generated from message quixos.orch.InvokeCapabilityResponse
|
||||
*/
|
||||
@@ -141,12 +165,80 @@ export type InvokeCapabilityResponse = Message<"quixos.orch.InvokeCapabilityResp
|
||||
* @generated from field: repeated quixos.runtime.DerivedDependency dependencies = 6;
|
||||
*/
|
||||
dependencies: DerivedDependency[];
|
||||
/**
|
||||
* @generated from field: quixos.orch.FieldEditing field_editing = 7;
|
||||
*/
|
||||
fieldEditing?: FieldEditing | undefined;
|
||||
};
|
||||
/**
|
||||
* Describes the message quixos.orch.InvokeCapabilityResponse.
|
||||
* Use `create(InvokeCapabilityResponseSchema)` to create a new message.
|
||||
*/
|
||||
export declare const InvokeCapabilityResponseSchema: GenMessage<InvokeCapabilityResponse>;
|
||||
/**
|
||||
* Resolved from the checked native getter/setter binding, not Value.source.
|
||||
*
|
||||
* @generated from message quixos.orch.FieldEditing
|
||||
*/
|
||||
export type FieldEditing = Message<"quixos.orch.FieldEditing"> & {
|
||||
/**
|
||||
* @generated from field: string getter_operation_id = 1;
|
||||
*/
|
||||
getterOperationId: string;
|
||||
/**
|
||||
* @generated from field: string setter_operation_id = 2;
|
||||
*/
|
||||
setterOperationId: string;
|
||||
/**
|
||||
* @generated from field: string document_type = 3;
|
||||
*/
|
||||
documentType: string;
|
||||
/**
|
||||
* @generated from field: string binding_digest = 4;
|
||||
*/
|
||||
bindingDigest: string;
|
||||
};
|
||||
/**
|
||||
* Describes the message quixos.orch.FieldEditing.
|
||||
* Use `create(FieldEditingSchema)` to create a new message.
|
||||
*/
|
||||
export declare const FieldEditingSchema: GenMessage<FieldEditing>;
|
||||
/**
|
||||
* @generated from message quixos.orch.EditCapabilityFieldRequest
|
||||
*/
|
||||
export type EditCapabilityFieldRequest = Message<"quixos.orch.EditCapabilityFieldRequest"> & {
|
||||
/**
|
||||
* The public getter; setter must belong to the same value member.
|
||||
*
|
||||
* @generated from field: quixos.CapabilityRef capability = 1;
|
||||
*/
|
||||
capability?: CapabilityRef | undefined;
|
||||
/**
|
||||
* @generated from field: string object_id = 2;
|
||||
*/
|
||||
objectId: string;
|
||||
/**
|
||||
* @generated from field: string setter_operation_id = 3;
|
||||
*/
|
||||
setterOperationId: string;
|
||||
/**
|
||||
* @generated from field: string binding_digest = 4;
|
||||
*/
|
||||
bindingDigest: string;
|
||||
/**
|
||||
* @generated from field: camino.CrdtValue update = 5;
|
||||
*/
|
||||
update?: CrdtValue | undefined;
|
||||
/**
|
||||
* @generated from field: string client_mutation_id = 6;
|
||||
*/
|
||||
clientMutationId: string;
|
||||
};
|
||||
/**
|
||||
* Describes the message quixos.orch.EditCapabilityFieldRequest.
|
||||
* Use `create(EditCapabilityFieldRequestSchema)` to create a new message.
|
||||
*/
|
||||
export declare const EditCapabilityFieldRequestSchema: GenMessage<EditCapabilityFieldRequest>;
|
||||
/**
|
||||
* @generated from message quixos.orch.WatchCapabilityRequest
|
||||
*/
|
||||
@@ -203,6 +295,10 @@ export type WatchCapabilityEvent = Message<"quixos.orch.WatchCapabilityEvent"> &
|
||||
* @generated from field: bool initial = 7;
|
||||
*/
|
||||
initial: boolean;
|
||||
/**
|
||||
* @generated from field: quixos.orch.FieldEditing field_editing = 8;
|
||||
*/
|
||||
fieldEditing?: FieldEditing | undefined;
|
||||
};
|
||||
/**
|
||||
* Describes the message quixos.orch.WatchCapabilityEvent.
|
||||
@@ -212,7 +308,14 @@ export declare const WatchCapabilityEventSchema: GenMessage<WatchCapabilityEvent
|
||||
/**
|
||||
* @generated from message quixos.orch.GetWorkspaceRequest
|
||||
*/
|
||||
export type GetWorkspaceRequest = Message<"quixos.orch.GetWorkspaceRequest"> & {};
|
||||
export type GetWorkspaceRequest = Message<"quixos.orch.GetWorkspaceRequest"> & {
|
||||
/**
|
||||
* Revision polling must not download the entire interface graph.
|
||||
*
|
||||
* @generated from field: bool include_interface_contracts = 1;
|
||||
*/
|
||||
includeInterfaceContracts: boolean;
|
||||
};
|
||||
/**
|
||||
* Describes the message quixos.orch.GetWorkspaceRequest.
|
||||
* Use `create(GetWorkspaceRequestSchema)` to create a new message.
|
||||
@@ -235,8 +338,8 @@ export type GetWorkspaceResponse = Message<"quixos.orch.GetWorkspaceResponse"> &
|
||||
*/
|
||||
sourceRootCommit: string;
|
||||
/**
|
||||
* 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.
|
||||
*
|
||||
* @generated from field: repeated string empty_input_constructible_atom_ids = 4;
|
||||
*/
|
||||
@@ -249,12 +352,60 @@ export type GetWorkspaceResponse = Message<"quixos.orch.GetWorkspaceResponse"> &
|
||||
* @generated from field: repeated quixos.orch.ConstructorInputContract constructor_inputs = 6;
|
||||
*/
|
||||
constructorInputs: ConstructorInputContract[];
|
||||
/**
|
||||
* Exact closed interface contracts used by checked presentation consumers.
|
||||
*
|
||||
* @generated from field: string interfaces_json = 7;
|
||||
*/
|
||||
interfacesJson: string;
|
||||
/**
|
||||
* @generated from field: repeated quixos.orch.ClassCapability class_capabilities = 8;
|
||||
*/
|
||||
classCapabilities: ClassCapability[];
|
||||
};
|
||||
/**
|
||||
* Describes the message quixos.orch.GetWorkspaceResponse.
|
||||
* Use `create(GetWorkspaceResponseSchema)` to create a new message.
|
||||
*/
|
||||
export declare const GetWorkspaceResponseSchema: GenMessage<GetWorkspaceResponse>;
|
||||
/**
|
||||
* @generated from message quixos.orch.ClassCapability
|
||||
*/
|
||||
export type ClassCapability = Message<"quixos.orch.ClassCapability"> & {
|
||||
/**
|
||||
* @generated from field: string conformance_id = 1;
|
||||
*/
|
||||
conformanceId: string;
|
||||
/**
|
||||
* @generated from field: string atom_id = 2;
|
||||
*/
|
||||
atomId: string;
|
||||
/**
|
||||
* @generated from field: string interface_revision_id = 3;
|
||||
*/
|
||||
interfaceRevisionId: string;
|
||||
/**
|
||||
* @generated from field: string definition_id = 4;
|
||||
*/
|
||||
definitionId: string;
|
||||
/**
|
||||
* @generated from field: string operation_id = 5;
|
||||
*/
|
||||
operationId: string;
|
||||
/**
|
||||
* @generated from field: string input_type_json = 6;
|
||||
*/
|
||||
inputTypeJson: string;
|
||||
/**
|
||||
* @generated from field: string output_type_json = 7;
|
||||
*/
|
||||
outputTypeJson: string;
|
||||
};
|
||||
/**
|
||||
* Describes the message quixos.orch.ClassCapability.
|
||||
* Use `create(ClassCapabilitySchema)` to create a new message.
|
||||
*/
|
||||
export declare const ClassCapabilitySchema: GenMessage<ClassCapability>;
|
||||
/**
|
||||
* @generated from message quixos.orch.CapabilityInputContract
|
||||
*/
|
||||
@@ -516,6 +667,22 @@ export declare const OrchestratorRuntime: GenService<{
|
||||
input: typeof InvokeCapabilityRequestSchema;
|
||||
output: typeof InvokeCapabilityResponseSchema;
|
||||
};
|
||||
/**
|
||||
* @generated from rpc quixos.orch.OrchestratorRuntime.EditCapabilityField
|
||||
*/
|
||||
editCapabilityField: {
|
||||
methodKind: "unary";
|
||||
input: typeof EditCapabilityFieldRequestSchema;
|
||||
output: typeof InvokeCapabilityResponseSchema;
|
||||
};
|
||||
/**
|
||||
* @generated from rpc quixos.orch.OrchestratorRuntime.InvokeClassCapability
|
||||
*/
|
||||
invokeClassCapability: {
|
||||
methodKind: "unary";
|
||||
input: typeof InvokeClassCapabilityRequestSchema;
|
||||
output: typeof InvokeCapabilityResponseSchema;
|
||||
};
|
||||
/**
|
||||
* @generated from rpc quixos.orch.OrchestratorRuntime.WatchCapability
|
||||
*/
|
||||
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+39
-19
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user