MCPcopy Create free account
hub / github.com/apache/maka / decodeContentBlock

Function decodeContentBlock

packages/runtime-host/src/protocol/client-capability.ts:838–919  ·  view source on GitHub ↗
(value: unknown)

Source from the content-addressed store, hash-verified

836}
837
838function decodeContentBlock(value: unknown): ClientCapabilityContentBlock {
839 const record = requireRecord(value, 'Client Capability content block');
840 switch (record.type) {
841 case 'text':
842 assertExactKeys(record, 'Client Capability text block', ['type', 'text']);
843 return {
844 type: 'text',
845 text: requireBoundedString(record.text, 'text', CLIENT_CAPABILITY_MAX_RESULT_BYTES),
846 };
847 case 'image':
848 case 'audio':
849 assertExactKeys(record, `Client Capability ${record.type} block`, [
850 'type',
851 'data',
852 'mimeType',
853 ]);
854 const data = requireBoundedString(record.data, 'data', CLIENT_CAPABILITY_MAX_RESULT_BYTES);
855 if (!isCanonicalBase64(data)) {
856 throw invalidProtocolFrame(`Invalid Client Capability ${record.type} data`);
857 }
858 return {
859 type: record.type,
860 data,
861 mimeType:
862 record.type === 'image'
863 ? requireImageMimeType(record.mimeType)
864 : requireString(record.mimeType, 'mimeType', 256),
865 };
866 case 'resource':
867 assertOptionalExactKeys(
868 record,
869 'Client Capability resource block',
870 ['type', 'uri'],
871 ['mimeType', 'text', 'blob'],
872 );
873 return {
874 type: 'resource',
875 uri: requireString(record.uri, 'uri', 4_096),
876 ...(record.mimeType === undefined
877 ? {}
878 : { mimeType: requireString(record.mimeType, 'mimeType', 256) }),
879 ...(record.text === undefined
880 ? {}
881 : {
882 text: requireBoundedString(record.text, 'text', CLIENT_CAPABILITY_MAX_RESULT_BYTES),
883 }),
884 ...(record.blob === undefined
885 ? {}
886 : {
887 blob: requireCanonicalBase64(record.blob, 'blob', CLIENT_CAPABILITY_MAX_RESULT_BYTES),
888 }),
889 };
890 case 'resource_link':
891 assertOptionalExactKeys(
892 record,
893 'Client Capability resource link block',
894 ['type', 'uri'],
895 ['name', 'description', 'mimeType'],

Callers

nothing calls this directly

Calls 10

assertExactKeysFunction · 0.85
requireBoundedStringFunction · 0.85
invalidProtocolFrameFunction · 0.85
requireImageMimeTypeFunction · 0.85
requireCanonicalBase64Function · 0.85
requireRecordFunction · 0.70
isCanonicalBase64Function · 0.70
requireStringFunction · 0.70
assertOptionalExactKeysFunction · 0.70
decodeJsonValueFunction · 0.70

Tested by

no test coverage detected