Add activated workspace reflection and Studio definition watches

Expose bounded snapshot-bound definition reads and latest-only watches from the serving checked bundle. Add checked reflection dependency ports, generated SDK bindings and selector-scoped invocation authority.

Move Studio factory, contract and query discovery to public reflection inventories. Share an active-definition watch across canvas and standalone routes and invalidate/reload on epoch changes instead of polling GetWorkspace.

Document the API and deferred scope; cover compiler/codegen, SDK injection, transport authorization, activation publication, pagination and reconnect behavior. Keep all work local; no deployment or publication.
This commit is contained in:
Timothy J. Aveni
2026-09-19 10:18:47 -07:00
parent 696009f6fd
commit d0f9454532
21 changed files with 1143 additions and 74 deletions
+356
View File
@@ -9,6 +9,346 @@ import type { Message } from "@bufbuild/protobuf";
* Describes the file quixos/orch.proto.
*/
export declare const file_quixos_orch: GenFile;
/**
* Activated definitions, not runtime metrics or object data. Nested type JSON
* uses the compiler's canonical ValueType/InterfaceRevision public contracts.
*
* @generated from message quixos.orch.DefinitionSelector
*/
export type DefinitionSelector = Message<"quixos.orch.DefinitionSelector"> & {
/**
* active | atoms | interfaces | conformances | queries | indexes
*
* @generated from field: string kind = 1;
*/
kind: string;
/**
* @generated from field: repeated string ids = 2;
*/
ids: string[];
/**
* @generated from field: string atom_id = 3;
*/
atomId: string;
/**
* @generated from field: string interface_revision_id = 4;
*/
interfaceRevisionId: string;
/**
* @generated from field: string package_revision_id = 5;
*/
packageRevisionId: string;
};
/**
* Describes the message quixos.orch.DefinitionSelector.
* Use `create(DefinitionSelectorSchema)` to create a new message.
*/
export declare const DefinitionSelectorSchema: GenMessage<DefinitionSelector>;
/**
* @generated from message quixos.orch.DefinitionIdentity
*/
export type DefinitionIdentity = Message<"quixos.orch.DefinitionIdentity"> & {
/**
* @generated from field: string workspace_id = 1;
*/
workspaceId: string;
/**
* @generated from field: string workspace_revision_id = 2;
*/
workspaceRevisionId: string;
/**
* @generated from field: string source_root_commit = 3;
*/
sourceRootCommit: string;
/**
* @generated from field: string workspace_epoch = 4;
*/
workspaceEpoch: string;
/**
* @generated from field: string definition_digest = 5;
*/
definitionDigest: string;
};
/**
* Describes the message quixos.orch.DefinitionIdentity.
* Use `create(DefinitionIdentitySchema)` to create a new message.
*/
export declare const DefinitionIdentitySchema: GenMessage<DefinitionIdentity>;
/**
* @generated from message quixos.orch.DefinitionRequest
*/
export type DefinitionRequest = Message<"quixos.orch.DefinitionRequest"> & {
/**
* @generated from field: quixos.orch.DefinitionSelector selector = 1;
*/
selector?: DefinitionSelector | undefined;
/**
* 1..100; 0 uses 50
*
* @generated from field: uint32 first = 2;
*/
first: number;
/**
* @generated from field: string after = 3;
*/
after: string;
/**
* issued definition_digest; current serving snapshot only
*
* @generated from field: string snapshot = 4;
*/
snapshot: string;
/**
* required for injected package authority
*
* @generated from field: string workspace_id = 5;
*/
workspaceId: string;
/**
* required for invocation-bound package calls
*
* @generated from field: string workspace_epoch = 6;
*/
workspaceEpoch: string;
};
/**
* Describes the message quixos.orch.DefinitionRequest.
* Use `create(DefinitionRequestSchema)` to create a new message.
*/
export declare const DefinitionRequestSchema: GenMessage<DefinitionRequest>;
/**
* @generated from message quixos.orch.ReflectedAtom
*/
export type ReflectedAtom = Message<"quixos.orch.ReflectedAtom"> & {
/**
* @generated from field: string id = 1;
*/
id: string;
/**
* @generated from field: string display_name = 2;
*/
displayName: string;
/**
* @generated from field: string constructor_input_type_json = 3;
*/
constructorInputTypeJson: string;
};
/**
* Describes the message quixos.orch.ReflectedAtom.
* Use `create(ReflectedAtomSchema)` to create a new message.
*/
export declare const ReflectedAtomSchema: GenMessage<ReflectedAtom>;
/**
* @generated from message quixos.orch.ReflectedInterface
*/
export type ReflectedInterface = Message<"quixos.orch.ReflectedInterface"> & {
/**
* @generated from field: string id = 1;
*/
id: string;
/**
* @generated from field: string interface_id = 2;
*/
interfaceId: string;
/**
* @generated from field: string display_name = 3;
*/
displayName: string;
/**
* canonical interface contract, excluding source location
*
* @generated from field: string contract_json = 4;
*/
contractJson: string;
};
/**
* Describes the message quixos.orch.ReflectedInterface.
* Use `create(ReflectedInterfaceSchema)` to create a new message.
*/
export declare const ReflectedInterfaceSchema: GenMessage<ReflectedInterface>;
/**
* @generated from message quixos.orch.ReflectedConformance
*/
export type ReflectedConformance = Message<"quixos.orch.ReflectedConformance"> & {
/**
* @generated from field: string id = 1;
*/
id: 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: repeated string operation_ids = 5;
*/
operationIds: string[];
/**
* @generated from field: repeated quixos.orch.ClassCapability class_capabilities = 6;
*/
classCapabilities: ClassCapability[];
/**
* @generated from field: bool instance = 7;
*/
instance: boolean;
};
/**
* Describes the message quixos.orch.ReflectedConformance.
* Use `create(ReflectedConformanceSchema)` to create a new message.
*/
export declare const ReflectedConformanceSchema: GenMessage<ReflectedConformance>;
/**
* @generated from message quixos.orch.ReflectedQuery
*/
export type ReflectedQuery = Message<"quixos.orch.ReflectedQuery"> & {
/**
* @generated from field: string id = 1;
*/
id: string;
/**
* @generated from field: string name = 2;
*/
name: string;
/**
* @generated from field: string package_revision_id = 3;
*/
packageRevisionId: string;
/**
* @generated from field: string definition_digest = 4;
*/
definitionDigest: string;
/**
* @generated from field: string binding_digest = 5;
*/
bindingDigest: string;
/**
* @generated from field: string root_kind = 6;
*/
rootKind: string;
/**
* @generated from field: string interface_revision_id = 7;
*/
interfaceRevisionId: string;
/**
* @generated from field: string variables_type_json = 8;
*/
variablesTypeJson: string;
/**
* @generated from field: string output_type_json = 9;
*/
outputTypeJson: string;
/**
* @generated from field: string effects_json = 10;
*/
effectsJson: string;
/**
* @generated from field: bool watch = 11;
*/
watch: boolean;
/**
* @generated from field: quixos.WorkspaceQueryScope workspace_scope = 12;
*/
workspaceScope?: WorkspaceQueryScope | undefined;
};
/**
* Describes the message quixos.orch.ReflectedQuery.
* Use `create(ReflectedQuerySchema)` to create a new message.
*/
export declare const ReflectedQuerySchema: GenMessage<ReflectedQuery>;
/**
* @generated from message quixos.orch.ReflectedIndex
*/
export type ReflectedIndex = Message<"quixos.orch.ReflectedIndex"> & {
/**
* @generated from field: string id = 1;
*/
id: string;
/**
* @generated from field: string contract_json = 2;
*/
contractJson: string;
};
/**
* Describes the message quixos.orch.ReflectedIndex.
* Use `create(ReflectedIndexSchema)` to create a new message.
*/
export declare const ReflectedIndexSchema: GenMessage<ReflectedIndex>;
/**
* @generated from message quixos.orch.DefinitionRecord
*/
export type DefinitionRecord = Message<"quixos.orch.DefinitionRecord"> & {
/**
* @generated from oneof quixos.orch.DefinitionRecord.definition
*/
definition: {
/**
* @generated from field: quixos.orch.ReflectedAtom atom = 1;
*/
value: ReflectedAtom;
case: "atom";
} | {
/**
* @generated from field: quixos.orch.ReflectedInterface interface = 2;
*/
value: ReflectedInterface;
case: "interface";
} | {
/**
* @generated from field: quixos.orch.ReflectedConformance conformance = 3;
*/
value: ReflectedConformance;
case: "conformance";
} | {
/**
* @generated from field: quixos.orch.ReflectedQuery query = 4;
*/
value: ReflectedQuery;
case: "query";
} | {
/**
* @generated from field: quixos.orch.ReflectedIndex index = 5;
*/
value: ReflectedIndex;
case: "index";
} | {
case: undefined;
value?: undefined;
};
};
/**
* Describes the message quixos.orch.DefinitionRecord.
* Use `create(DefinitionRecordSchema)` to create a new message.
*/
export declare const DefinitionRecordSchema: GenMessage<DefinitionRecord>;
/**
* @generated from message quixos.orch.DefinitionPage
*/
export type DefinitionPage = Message<"quixos.orch.DefinitionPage"> & {
/**
* @generated from field: quixos.orch.DefinitionIdentity identity = 1;
*/
identity?: DefinitionIdentity | undefined;
/**
* @generated from field: repeated quixos.orch.DefinitionRecord records = 2;
*/
records: DefinitionRecord[];
/**
* @generated from field: string next_cursor = 3;
*/
nextCursor: string;
};
/**
* Describes the message quixos.orch.DefinitionPage.
* Use `create(DefinitionPageSchema)` to create a new message.
*/
export declare const DefinitionPageSchema: GenMessage<DefinitionPage>;
/**
* @generated from message quixos.orch.QueryEvent
*/
@@ -779,6 +1119,22 @@ export declare const PackageRuntimeStatusSchema: GenMessage<PackageRuntimeStatus
* @generated from service quixos.orch.OrchestratorRuntime
*/
export declare const OrchestratorRuntime: GenService<{
/**
* @generated from rpc quixos.orch.OrchestratorRuntime.ReadDefinitions
*/
readDefinitions: {
methodKind: "unary";
input: typeof DefinitionRequestSchema;
output: typeof DefinitionPageSchema;
};
/**
* @generated from rpc quixos.orch.OrchestratorRuntime.WatchDefinitions
*/
watchDefinitions: {
methodKind: "server_streaming";
input: typeof DefinitionRequestSchema;
output: typeof DefinitionPageSchema;
};
/**
* @generated from rpc quixos.orch.OrchestratorRuntime.ExecuteQuery
*/