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
+4 -3
View File
@@ -1,17 +1,18 @@
symbol JavaScript id "target:org.quixos.execution.javascript@1";
type Replacement = record { expected: list<string>; targets: list<atom-ref<Node>>; };
type Seed = record { label: string; };
external atom Node id "collection:node";
package CollectionRuntime id "collection:runtime" revision "collection:runtime@1" {
operation version id "collection:runtime:version" : unit -> list<string>
mode call execution snapshot targets [browser, server] receiver atom Node requires {
mode call execution snapshot targets [JavaScript, server] receiver atom Node requires {
edge items id "collection:version:items" : many atom Node [resolve];
};
operation replace id "collection:runtime:replace" : Replacement -> unit
mode call execution transaction targets [browser, server] receiver atom Node requires {
mode call execution transaction targets [JavaScript, server] receiver atom Node requires {
edge items id "collection:replace:items" : many atom Node [resolve, connect, disconnect];
};
operation ensure id "collection:runtime:ensure" : unit -> atom-ref<Node>
mode call execution transaction targets [browser, server] receiver atom Node requires {
mode call execution transaction targets [JavaScript, server] receiver atom Node requires {
edge detail id "collection:ensure:detail" : optional-one atom Node [resolve, connect];
creation node id "collection:ensure:node" : Node input Seed;
};
+8 -8
View File
@@ -2,25 +2,25 @@ type Replacement = record { expected: list<string>; targets: list<atom-ref<Node>
external atom Node id "collection:node";
interface NodeData id "collection:data" revision "collection:data@1" {
queryable portable value version id "collection:version" : list<string> {
get id "collection:version:get" execution snapshot targets [browser, server];
get id "collection:version:get" execution snapshot;
}
operation replace id "collection:replace" : Replacement -> unit {
call id "collection:replace:call" execution transaction targets [browser, server];
call id "collection:replace:call" execution transaction;
}
operation ensure id "collection:ensure" : unit -> atom-ref<Node> {
call id "collection:ensure:call" execution transaction targets [browser, server];
call id "collection:ensure:call" execution transaction;
}
queryable value label id "collection:label" : string {
get id "collection:label:get" execution snapshot targets [browser, server];
set id "collection:label:set" execution transaction targets [browser, server];
get id "collection:label:get" execution snapshot;
set id "collection:label:set" execution transaction;
}
queryable relation items id "collection:items" : many atom Node {
resolve id "collection:items:resolve" execution snapshot targets [browser, server];
resolve id "collection:items:resolve" execution snapshot;
}
queryable relation containers id "collection:containers" : many atom Node {
resolve id "collection:containers:resolve" execution snapshot targets [browser, server];
resolve id "collection:containers:resolve" execution snapshot;
}
queryable relation detail id "collection:detail" : optional-one atom Node {
resolve id "collection:detail:resolve" execution snapshot targets [browser, server];
resolve id "collection:detail:resolve" execution snapshot;
}
}