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

Function render_json

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

777/// Render a single-call envelope containing both injectable text and exact
778/// memory exposure metadata for run provenance.
779fn render_json(items: &[MemoryItem], md: &str, request: &Context, limit: usize) -> String {
780 let values: Vec<serde_json::Value> = items
781 .iter()
782 .map(|item| {
783 serde_json::json!({
784 "memory_id": item.memory_id,
785 "kg_node_id": item.kg_node_id,
786 "revision_hash": item.revision_hash,
787 "content_hash": item.content_hash,
788 "path": item.path,
789 "name": item.name,
790 "kind": item.kind,
791 "status": item.status,
792 "score": (item.score * 1000.0).round() / 1000.0,
793 "body": item.body,
794 "preview": preview(&item.body),
795 "updated_at": item.updated_at,
796 "introduced_by": item.introduced_by,
797 "recorded": item.introduced_by != 0,
798 "truncated": item.truncated,
799 })
800 })
801 .collect();
802 let envelope = serde_json::json!({
803 "schema_version": JSON_SCHEMA_VERSION,
804 "context_markdown": md,
805 "retrieval": {
806 "query": &request.query,
807 "intent": &request.intent,
808 "files": &request.files,
809 "limit": limit,
810 "budget_chars": request.budget_chars,
811 "ranker_version": RANKER_VERSION,
812 },
813 "memories": values,
814 });
815 serde_json::to_string_pretty(&envelope).unwrap_or_else(|_| "{}".to_string())
816}
817
818fn prompt_metadata(value: &str) -> String {
819 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