mindspace: version runtime contracts and audit packages

This commit is contained in:
john
2026-07-27 17:43:38 +08:00
parent e94052ff24
commit 70264a4c4c
23 changed files with 1448 additions and 20 deletions
+69
View File
@@ -1,3 +1,12 @@
export const MINDSPACE_SERVER_ADAPTER_CONTRACT_VERSION = 2;
export const MINDSPACE_SERVER_ADAPTER_REQUIRED_CAPABILITIES = Object.freeze([
'chat-save-authority',
'public-finish-authority',
'workspace-publication-delivery-authority',
'scoped-workspace-tools',
]);
export const MINDSPACE_SERVER_ADAPTER_BINDINGS = Object.freeze({
serviceFacade: Object.freeze(['prepareConversationPackageRead']),
chatSaveService: Object.freeze([
@@ -119,6 +128,66 @@ export const MINDSPACE_SERVER_ADAPTER_BINDING_KEYS = Object.freeze(
Object.keys(MINDSPACE_SERVER_ADAPTER_BINDINGS),
);
export const MINDSPACE_SERVER_ADAPTER_REQUIRED_BINDINGS = Object.freeze({
chatSaveService: Object.freeze([
'createSharedHtml',
'materializeWorkspaceHtml',
'readWorkspaceHtml',
]),
conversationArtifactService: Object.freeze([
'registerPublicHtmlArtifacts',
'registerWorkspaceFileArtifact',
]),
publicFinishService: Object.freeze([
'prepareWechatHtmlDelivery',
'syncAfterFinish',
]),
workspacePublicationDeliveryService: Object.freeze([
'resolveWorkspaceRequest',
'validateRunDeliverables',
]),
workspaceToolService: Object.freeze([
'readFile',
'writeFile',
'editFile',
'publishPage',
'writeBinaryFile',
]),
});
export function createMindSpaceServerAdapterContractPayload({
adapter = {},
serviceMeta = {},
env = process.env,
} = {}) {
return {
contractVersion:
MINDSPACE_SERVER_ADAPTER_CONTRACT_VERSION,
service: 'mindspace-service',
adapterKind: adapter.kind ?? null,
implementationStatus:
adapter.implementationStatus ?? null,
buildId:
serviceMeta.buildId ??
env.MINDSPACE_SERVICE_BUILD_ID ??
null,
gitSha:
serviceMeta.gitSha ??
env.MINDSPACE_SERVICE_GIT_SHA ??
null,
builtAt:
serviceMeta.builtAt ??
env.MINDSPACE_SERVICE_BUILT_AT ??
null,
requiredCapabilities:
MINDSPACE_SERVER_ADAPTER_REQUIRED_CAPABILITIES,
requiredBindings:
MINDSPACE_SERVER_ADAPTER_REQUIRED_BINDINGS,
bindings: MINDSPACE_SERVER_ADAPTER_BINDINGS,
bindingKeys: MINDSPACE_SERVER_ADAPTER_BINDING_KEYS,
};
}
export function assertMindSpaceServerAdapterBindingContract(bindingKey, service) {
const methods = MINDSPACE_SERVER_ADAPTER_BINDINGS[bindingKey];
if (!methods) {