Profile source capture, Nix evaluation/realization, resource/query checking, and implementation builds without putting timings into immutable outputs. Keep modular repositories; bound independent capture work, snapshot jj once per observation, and retain final concurrent-edit and Git completeness checks. Compose exact resource/closure/frontend/toolchain checks as memoized Nix derivations. Preserve whole-workspace validation and the full compiler path when no checked dependency is supplied. Share canonical Nixpkgs by content, index workspace build contexts once, and narrow lock/driver/compiler inputs with conservative complete-source fallback. Batch React witness checks only when distinct source closures cannot share ambient declarations; otherwise run the original independent TypeScript checks. Seed local authoring toolchains with exact canonical fetch identities when they match the selected inputs; retain store-path inputs for overrides. Add generic correctness checks rather than permanent Reader timing/content fixtures. Verify actual Reader edits and rejection/recovery in a private workbench, preserving the original user's workbench and runtime. Query checking currently caches at resource/closure boundaries, not individual query semantic dependency boundaries. Template helper pins and reproducible fixture snapshots follow in a separate publication change.
40 lines
952 B
Nix
40 lines
952 B
Nix
{
|
|
pkgs,
|
|
context,
|
|
artifacts,
|
|
}:
|
|
let
|
|
buildTools = import ./build-tools.nix;
|
|
groups = map (artifact: artifact.caminoGroup or artifact) artifacts;
|
|
compiler = builtins.path {
|
|
path = "${context.generator}/libexec/quixos-protocol/execution-world.mjs";
|
|
name = "execution-world.mjs";
|
|
};
|
|
config = pkgs.writeText "camino-package-assembly.json" (
|
|
builtins.toJSON {
|
|
inherit groups;
|
|
inherit (context)
|
|
buildContract
|
|
sourceDigest
|
|
packageRevisionId
|
|
sharedRuntime
|
|
;
|
|
inherit compiler;
|
|
node = "${pkgs.nodejs_24}/bin/node";
|
|
esbuild = "${pkgs.esbuild}/bin/esbuild";
|
|
shell = "${pkgs.runtimeShell}";
|
|
serviceAdapter = ./portable-service.mjs;
|
|
}
|
|
);
|
|
in
|
|
pkgs.runCommand "camino-package"
|
|
{
|
|
passthru = {
|
|
caminoGroups = groups;
|
|
assemblyConfig = config;
|
|
};
|
|
}
|
|
''
|
|
${pkgs.nodejs_24}/bin/node ${buildTools}/assemble-package.mjs ${config}
|
|
''
|