Make local graph execution optional across composed packages

This commit is contained in:
Timothy J. Aveni
2026-09-28 21:05:42 -07:00
parent 1e72713ae2
commit e9c15fe40f
87 changed files with 3703 additions and 3400 deletions
+2 -2
View File
@@ -20,8 +20,8 @@ interface CommentData id "interface:reader:comment-data"
revision "interface:reader:comment-data@1" {
queryable value content id "comment:content" : CommentContent {
get id "comment:content:get"
execution snapshot targets [browser, server];
execution snapshot;
edit id "comment:content:edit"
execution transaction targets [browser, server];
execution transaction;
}
}
+1 -1
View File
@@ -20,6 +20,6 @@ interface DocumentActions id "interface:reader:document-actions"
revision "interface:reader:document-actions@1" {
operation annotate id "document:annotate" : SourceRange -> atom-ref<Highlight> {
call id "document:annotate:call"
execution transaction targets [browser, server];
execution transaction;
}
}
+4 -4
View File
@@ -20,17 +20,17 @@ interface DocumentData id "interface:reader:document-data"
revision "interface:reader:document-data@1" {
queryable value sourceRevision id "document:source-revision" : string {
get id "document:source-revision:get"
execution snapshot targets [browser, server];
execution snapshot;
}
queryable value content id "document:content" : string {
get id "document:content:get"
execution snapshot targets [browser, server];
execution snapshot;
}
queryable relation highlights id "document:highlights"
: many-unique atom Highlight {
resolve id "document:highlights:resolve"
execution snapshot targets [browser, server];
execution snapshot;
connect id "document:highlights:connect"
execution transaction targets [browser, server];
execution transaction;
}
}
+1 -1
View File
@@ -20,6 +20,6 @@ interface DocumentFactory id "interface:reader:document-factory"
revision "interface:reader:document-factory@1" {
static operation create id "document:create" : DocumentSeed -> atom-ref<Document> {
call id "document:create:call"
execution transaction targets [browser, server];
execution transaction;
}
}
+5 -5
View File
@@ -20,20 +20,20 @@ interface HighlightData id "interface:reader:highlight-data"
revision "interface:reader:highlight-data@1" {
queryable value range id "highlight:range" : SourceRange {
get id "highlight:range:get"
execution snapshot targets [browser, server];
execution snapshot;
}
queryable value color id "highlight:color" : string {
get id "highlight:color:get"
execution snapshot targets [browser, server];
execution snapshot;
set id "highlight:color:set"
execution transaction targets [browser, server];
execution transaction;
}
queryable portable value excerpt id "highlight:excerpt" : string {
get id "highlight:excerpt:get"
execution snapshot targets [browser, server];
execution snapshot;
}
queryable relation comments id "highlight:comments" : many-unique atom Comment {
resolve id "highlight:comments:resolve"
execution snapshot targets [browser, server];
execution snapshot;
}
}
+5 -4
View File
@@ -1,3 +1,4 @@
symbol JavaScript id "target:org.quixos.execution.javascript@1";
// Shared record definitions, repeated explicitly in independently locked resources.
external atom Document id "atom:reader:document";
external atom Highlight id "atom:reader:highlight";
@@ -29,7 +30,7 @@ package ReaderRuntime id "package:reader-runtime"
revision "package:reader-runtime@1" {
operation addHighlight id "reader:add-highlight"
: SourceRange -> atom-ref<Highlight>
mode call execution transaction targets [browser, server]
mode call execution transaction targets [JavaScript, server]
receiver atom Document requires {
interface document id "reader:add:document" : DocumentData
using [sourceRevision.get, content.get, highlights.connect];
@@ -38,7 +39,7 @@ revision "package:reader-runtime@1" {
};
operation excerpt id "reader:excerpt" : unit -> string
mode call execution snapshot targets [browser, server]
mode call execution snapshot targets [JavaScript, server]
receiver atom Highlight requires {
state range id "reader:excerpt:range" : SourceRange [read];
interface document id "reader:excerpt:document" : DocumentData
@@ -48,11 +49,11 @@ revision "package:reader-runtime@1" {
// A receiverless function needs no synthetic service object.
function validateRange id "reader:validate-range"
: record { range: SourceRange; content: string; } -> bool
execution snapshot targets [browser, server];
execution snapshot targets [JavaScript, server];
function createDocument id "reader:create-document"
: DocumentSeed -> atom-ref<Document>
execution transaction targets [browser, server] requires {
execution transaction targets [JavaScript, server] requires {
creation document id "reader:create:document" : Document input DocumentSeed;
};
query ReplicaInputs id "reader:replica-inputs" root DocumentData