|
|
|
@@ -1,5 +1,11 @@
|
|
|
|
|
# Checked capability and component artifacts
|
|
|
|
|
|
|
|
|
|
This is the **current helper/output format**, not the core package abstraction.
|
|
|
|
|
See [the architecture](../../docs/ARCHITECTURE.md) and
|
|
|
|
|
[current gaps](../../docs/ARCHITECTURE_STATUS.md). In particular, the universal
|
|
|
|
|
artifact inventory and component-only omission of a server are implementation
|
|
|
|
|
gaps to resolve, not requirements for arbitrary package servers.
|
|
|
|
|
|
|
|
|
|
`mkCaminoArtifacts` is the fresh package builder. It regenerates candidate
|
|
|
|
|
bindings, typechecks the entry's dependency closure, bundles declared targets,
|
|
|
|
|
generates a process service when requested, and emits content manifests and
|
|
|
|
@@ -55,6 +61,25 @@ with their own versions. Authored source symlinks and non-bundled portable impor
|
|
|
|
|
other than the SDK and server Node builtins are rejected. This is build closure
|
|
|
|
|
checking, not a purity proof or security sandbox.
|
|
|
|
|
|
|
|
|
|
`mkCaminoYarnDependencies` installs the locked dependency recipe and exports its
|
|
|
|
|
installed Node dependency tree, including native package results and executable
|
|
|
|
|
links. Generated Yarn install/linker state stays outside runtime outputs. Yarn
|
|
|
|
|
describes its install-state file as an optimization cache in its
|
|
|
|
|
[configuration reference](https://yarnpkg.com/configuration/yarnrc#installStatePath).
|
|
|
|
|
This helper output is a dependency directory for a build, not a standalone
|
|
|
|
|
Package or a runnable Yarn project. Its `devShell` supplies freestanding Yarn for
|
|
|
|
|
editable projects; do not run Yarn against the readonly dependency output.
|
|
|
|
|
|
|
|
|
|
Use the shared `installDependencies` assembly for consumers: authored libraries
|
|
|
|
|
are copied into the consumer's `node_modules`, where Node can find their
|
|
|
|
|
transitive dependencies, while selected SDK links retain their canonical type
|
|
|
|
|
identity. Reserved SDK substitutions fail checks. Web Studio uses this same
|
|
|
|
|
assembly rather than retaining a full Yarn project just to resolve UI libraries.
|
|
|
|
|
Its dependency inputs contain manifests, lock and Yarn configuration/plugin
|
|
|
|
|
recipe; ordinary Studio source edits do not enter that dependency derivation.
|
|
|
|
|
Recipes with local/workspace dependencies must still include their needed source.
|
|
|
|
|
This is language-specific build machinery; it adds no core Package file contract.
|
|
|
|
|
|
|
|
|
|
The core/Automerge bundle and Replicache bundle are built once. Browser modules
|
|
|
|
|
import the core through a content-addressed gateway URL, independent of package
|
|
|
|
|
identity. Each manifest covers the shared bytes it uses. The gateway retains its
|
|
|
|
@@ -105,7 +130,7 @@ and supplies an explicit SDK for value codecs, identities and declared graph por
|
|
|
|
|
service = {
|
|
|
|
|
restricted = true;
|
|
|
|
|
limits = {
|
|
|
|
|
deadlineMs = 4000;
|
|
|
|
|
deadlineMs = 10000;
|
|
|
|
|
maxBytes = 1048576;
|
|
|
|
|
maxPortCalls = 1000;
|
|
|
|
|
maxQueued = 8;
|
|
|
|
@@ -122,6 +147,14 @@ invocation identity; authored code cannot choose another frame or workspace.
|
|
|
|
|
Native graph grants and transaction commit remain enforced by Camino outside
|
|
|
|
|
the guest. Initialization and synchronous loops are subject to the same deadline.
|
|
|
|
|
|
|
|
|
|
The default root/Package Invocation wall deadline is 10 seconds. The separate
|
|
|
|
|
root CPU allowance remains at most 4 CPU seconds; extra wall time accommodates
|
|
|
|
|
queueing and graph-port waits. Ordinary graph database transactions and idle
|
|
|
|
|
transactions allow 30 seconds, and ordinary client HTTP requests allow 45 seconds
|
|
|
|
|
so server failures can be returned. Nested calls inherit the remaining root
|
|
|
|
|
budget; explicit smaller limits still apply. Restore/activation jobs retain their
|
|
|
|
|
separate budgets. These defaults are starting limits, not latency targets.
|
|
|
|
|
|
|
|
|
|
Direct network access, native filesystem imports, ambient clock and entropy,
|
|
|
|
|
parent environment credentials, and unlisted modules are denied. Explicit dates,
|
|
|
|
|
`Intl.Segmenter`, deterministic hashes and normal JavaScript computation remain
|
|
|
|
|