Expand description
Memory capture service.
Handles capturing new memories, including validation, redaction, and storage. Now also generates embeddings and indexes memories for searchability.
ยงExamples
Basic capture:
use subcog::services::CaptureService;
use subcog::models::{CaptureRequest, Namespace, Domain};
let service = CaptureService::default();
let request = CaptureRequest {
content: "Use PostgreSQL for primary storage".to_string(),
namespace: Namespace::Decisions,
domain: Domain::default(),
tags: vec!["database".to_string()],
source: Some("ARCHITECTURE.md".to_string()),
skip_security_check: false,
ttl_seconds: None,
scope: None,
..Default::default()
};
let result = service.capture(request).expect("capture should succeed");
assert!(result.urn.starts_with("subcog://"));Validation before capture:
use subcog::services::CaptureService;
use subcog::models::{CaptureRequest, Namespace, Domain};
let service = CaptureService::default();
let request = CaptureRequest {
content: "Important decision".to_string(),
namespace: Namespace::Decisions,
domain: Domain::default(),
tags: vec![],
source: None,
skip_security_check: false,
ttl_seconds: None,
scope: None,
..Default::default()
};
let validation = service.validate(&request).expect("validation should succeed");
if validation.is_valid {
let _result = service.capture(request);
}Structsยง
- Capture
Service - Service for capturing memories.
- Entity
Extraction Stats - Statistics from entity extraction during capture.
- Validation
Result - Result of capture validation.
Functionsยง
- normalize_
path ๐ - resolve_
file_ ๐path - run_
entity_ ๐extraction - Runs entity extraction and logs results/metrics.
Type Aliasesยง
- Entity
Extraction Callback - Callback type for post-capture entity extraction.