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
+1 -1
View File
@@ -2,6 +2,6 @@ external atom Comment id "atom:reader:comment";
interface CommentFactory id "interface:reader:comment-factory"
revision "interface:reader:comment-factory@1" {
operation prepareComment id "document:prepare-comment" : bool -> atom-ref<Comment> {
call id "document:prepare-comment:call" execution transaction targets [browser, server];
call id "document:prepare-comment:call" execution transaction;
}
}
+2 -1
View File
@@ -1,10 +1,11 @@
symbol JavaScript id "target:org.quixos.execution.javascript@1";
external atom Document id "atom:reader:document";
external atom Comment id "atom:reader:comment";
import interface CommentData;
type CommentSeed = record { content: record { text: string; tags: list<string>; }; };
package CommentRuntime id "package:comment-runtime" revision "package:comment-runtime@1" {
operation prepareComment id "comment:prepare"
: bool -> atom-ref<Comment> mode call execution transaction targets [browser, server]
: bool -> atom-ref<Comment> mode call execution transaction targets [JavaScript, server]
receiver atom Document requires {
creation comment id "comment:prepare:comment" : Comment input CommentSeed;
};
+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;
}
}
+1 -1
View File
@@ -1,6 +1,6 @@
interface DocumentLabel id "interface:reader:document-label"
revision "interface:reader:document-label@1" {
queryable value title id "document:view-title" : string {
get id "document:view-title:get" execution snapshot targets [browser, server];
get id "document:view-title:get" execution snapshot;
}
}
+1 -1
View File
@@ -1,6 +1,6 @@
interface DocumentMetadata id "interface:reader:document-metadata"
revision "interface:reader:document-metadata@1" {
queryable value label id "document:label" : string {
get id "document:label:get" execution snapshot targets [browser, server];
get id "document:label:get" 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";
@@ -30,7 +31,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];
@@ -39,7 +40,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
@@ -49,11 +50,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