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

Function render_json

atomic-cli/src/commands/vault/context.rs:882–920  ·  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

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