appSeamOwner
appSeamOwner: "@openfairygui/functions"
authoring
authoring: {
applyTransaction: true;
gearKinds: readonly string[];
nodeKinds: readonly string[];
preflightTransaction: {
impact: "model-diff";
limits: { maxBytes: 262144; maxEntries: 2000 };
mode: "execute-and-discard";
reservesRevision: false;
};
resourceKinds: readonly string[];
saveSession: true;
transactionScope: {
gearKinds: readonly string[];
nodeKinds: readonly string[];
resourceKinds: readonly string[];
};
unsupported: readonly ["artifact.publish", "artifact.restore"];
}
capabilitySchemaVersion
capabilitySchemaVersion: 12
compatibilityPolicy
compatibilityPolicy: {
additiveChange: "allowed without breaking existing consumers";
capabilitySchemaChange: "requires capabilitySchemaVersion bump";
incompatibleChange: "requires contractVersion bump";
}
contractVersion
contractVersion: "3.0.0"
methods
methods: readonly [
"getCapabilities",
"openSession",
"openProjectSession",
"getSession",
"getProjectOutline",
"queryEntity",
"readSessionState",
"readResourceBytes",
"validateSession",
"preflightTransaction",
"applyTransaction",
"saveSession",
"materializeSession",
"closeSession",
"getEvents",
"getCacheSnapshot",
"refreshCache",
]
read
read: {
capabilitySnapshot: true;
entityQuery: {
kinds: readonly (
| "component"
| "controller"
| "transition"
| "project"
| "package"
| "resource"
| "displayNode"
)[];
limits: { maxBytes: 262144; maxDepth: 32; maxNodes: 100000 };
projection: "properties";
sourceBytes: false;
};
projectOutline: true;
projectValidation: true;
resourceBytes: {
expectedRevisionRequired: true;
hydration: false;
maxBytes: 1048576;
};
sessionSnapshot: true;
sessionState: {
limits: { maxBytes: 4194304; maxDepth: 64; maxNodes: 500000 };
sourceBytes: false;
};
}
runtime
runtime: {
advisoryLocking: true;
atomicSave: boolean;
cache: {
derivedReadOnly: true;
keyedBy: "sessionId";
refreshMethod: "refreshCache";
refreshMode: "synchronous";
sourceOfTruth: false;
};
coordinatedSave: true;
events: {
polling: true;
retentionLimit: 1000;
sequenceScope: "runtime";
subscriptions: false;
};
pathPolicy: {
canonicalization: "realpath+normalized-casefold";
outputTargets: "deferred";
saveTarget: "opened-project-only";
sessionIdentity: "project-root";
workspaceBoundary: "project-root-only";
};
sessionRuntime: true;
staleRevisionProtection: true;
}
runtimeOwner
runtimeOwner: "@openfairygui/backend"
transactionKernelOwner
transactionKernelOwner: "@openfairygui/core"