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

Function decodeQueryResult

packages/runtime-host/src/protocol/skill-catalog.ts:482–532  ·  view source on GitHub ↗
(value: unknown)

Source from the content-addressed store, hash-verified

480}
481
482function decodeQueryResult(value: unknown): SkillCatalogQueryResult {
483 const record = requireRecord(value, 'skill catalog query result');
484 if (record.kind === 'revision_changed') {
485 const changed = requireExactRecord(record, 'skill catalog revision changed result', [
486 'kind',
487 'expectedRevision',
488 'actualRevision',
489 'resolvedWorkspace',
490 ]);
491 return {
492 ...revisionChanged({
493 kind: changed.kind,
494 expectedRevision: changed.expectedRevision,
495 actualRevision: changed.actualRevision,
496 }),
497 resolvedWorkspace: decodeWorkspaceProjection(changed.resolvedWorkspace),
498 };
499 }
500 const page = requireExactRecord(record, 'skill catalog page result', [
501 'kind',
502 'view',
503 'revision',
504 'items',
505 'nextCursor',
506 'resolvedWorkspace',
507 ]);
508 if (page.kind !== 'page' || !Array.isArray(page.items)) {
509 throw invalidProtocolFrame('Invalid skill catalog page result');
510 }
511 if (page.items.length > SKILL_CATALOG_PAGE_MAX_ITEMS) {
512 throw invalidProtocolFrame('Skill catalog page exceeds item limit');
513 }
514 const view = catalogView(page.view);
515 const decoded: SkillCatalogQueryResult = {
516 kind: 'page',
517 view,
518 revision: sha256(page.revision, 'skill catalog revision'),
519 items: page.items.map((item) => pageItem(item, view)),
520 nextCursor:
521 page.nextCursor === null
522 ? null
523 : utf8String(page.nextCursor, 'skill catalog next cursor', CURSOR_MAX_BYTES),
524 resolvedWorkspace: decodeWorkspaceProjection(page.resolvedWorkspace),
525 };
526 assertJsonByteLimit(
527 decoded,
528 SKILL_CATALOG_PAGE_MAX_BYTES + resolvedWorkspaceByteOverhead(decoded.resolvedWorkspace),
529 'Skill catalog page',
530 );
531 return decoded;
532}
533
534function pageItem(value: unknown, view: SkillCatalogView): SkillCatalogPageItem {
535 if (view === 'governance') return governanceItem(value);

Callers

nothing calls this directly

Calls 11

revisionChangedFunction · 0.85
invalidProtocolFrameFunction · 0.85
catalogViewFunction · 0.85
pageItemFunction · 0.85
utf8StringFunction · 0.85
assertJsonByteLimitFunction · 0.85
requireRecordFunction · 0.70
requireExactRecordFunction · 0.70
sha256Function · 0.70

Tested by

no test coverage detected