MCPcopy Create free account
hub / github.com/atomicdotdev/atomic / render_json

Function render_json

atomic-cli/src/commands/vault/context.rs:886–924  ·  view source on GitHub ↗

Render a single-call envelope containing both injectable text and exact memory exposure metadata for run provenance.

(items: &[MemoryItem], md: &str, request: &Context, limit: usize)

Source from the content-addressed store, hash-verified

884/// Render a single-call envelope containing both injectable text and exact
885/// memory exposure metadata for run provenance.
886fn render_json(items: &[MemoryItem], md: &str, request: &Context, limit: usize) -> String {
887 let values: Vec<serde_json::Value> = items
888 .iter()
889 .map(|item| {
890 serde_json::json!({
891 "memory_id": item.memory_id,
892 "kg_node_id": item.kg_node_id,
893 "revision_hash": item.revision_hash,
894 "content_hash": item.content_hash,
895 "path": item.path,
896 "name": item.name,
897 "kind": item.kind,
898 "status": item.status,
899 "score": (item.score * 1000.0).round() / 1000.0,
900 "why_matched": item.why_matched,
901 "body": item.body,
902 "preview": preview(&item.body),
903 "updated_at": item.updated_at,
904 "introduced_by": item.introduced_by,
905 "recorded": item.introduced_by != 0,
906 "truncated": item.truncated,
907 })
908 })
909 .collect();
910 let envelope = serde_json::json!({
911 "schema_version": JSON_SCHEMA_VERSION,
912 "context_markdown": md,
913 "retrieval": {
914 "query": &request.query,
915 "intent": &request.intent,
916 "files": &request.files,
917 "limit": limit,
918 "budget_chars": request.budget_chars,
919 "ranker_version": RANKER_VERSION,
920 },
921 "memories": values,
922 });
923 serde_json::to_string_pretty(&envelope).unwrap_or_else(|_| "{}".to_string())
924}
925
926fn prompt_metadata(value: &str) -> String {
927 value

Callers 2

test_render_json_shapeFunction · 0.85
test_render_json_emptyFunction · 0.85

Calls 1

iterMethod · 0.45

Tested by 2

test_render_json_shapeFunction · 0.68
test_render_json_emptyFunction · 0.68