Skip to main content

Module capture

Module capture 

Source
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ยง

CaptureService
Service for capturing memories.
EntityExtractionStats
Statistics from entity extraction during capture.
ValidationResult
Result of capture validation.

Functionsยง

normalize_path ๐Ÿ”’
resolve_file_path ๐Ÿ”’
run_entity_extraction ๐Ÿ”’
Runs entity extraction and logs results/metrics.

Type Aliasesยง

EntityExtractionCallback
Callback type for post-capture entity extraction.