1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
// SPDX-License-Identifier: Apache-2.0 OR MIT
//! Canonical, opt-in attribute key conventions.
//!
//! None of these are required by the engine — they are documented strings
//! that consumers (CLI, mind-map renderer, integration adapters such as the
//! Kiromi macOS transcriber) can use uniformly so tools interoperate.
//!
//! Pair these constants with the typed [`crate::AttributeValue`] enum:
//!
//! ```
//! use kiromi_ai_memory::{canonical_keys, AppendOpts, AttributeValue};
//! let opts = AppendOpts::default()
//! .with_attribute(canonical_keys::SPEAKER, "alex")
//! .with_attribute(
//! canonical_keys::TS_START_MS,
//! AttributeValue::Timestamp(1_700_000_000_000),
//! );
//! # let _ = opts;
//! ```
/// `Array<String>` — keywords for this subject (memory or summary). Used
/// by mind-map renderers to label nodes and by integration adapters to
/// drive cross-tenant fan-out.
pub const KEYWORDS: &str = "keywords";
/// `Array<String>` — tags for this subject. Distinct from keywords:
/// tags are author-supplied, keywords are extracted.
pub const TAGS: &str = "tags";
/// `String` — short contextual headline / one-liner.
pub const HEADLINE: &str = "headline";
/// `String` — speaker for episodic memories (transcripts).
pub const SPEAKER: &str = "speaker";
/// `String` — meeting id (caller-supplied stable identifier).
pub const MEETING_ID: &str = "meeting_id";
/// `Array<String>` — participant ids for episodic memories.
pub const PARTICIPANTS: &str = "participants";
/// `Timestamp` — millisecond offset of segment start (for transcript
/// memories).
pub const TS_START_MS: &str = "ts_start_ms";
/// `Timestamp` — millisecond offset of segment end.
pub const TS_END_MS: &str = "ts_end_ms";