返回 CodeWhale
lifecycle.rs
根目录 / crates / memory / examples / lifecycle.rs
1 use codewhale_memory::*;
2 fn main() -> Result<()> {
3 let scope = Scope::user("local", "developer").workspace("codewhale");
4 let access = Access::operator(vec![scope.clone()])?;
5 let mut memory = Store::in_memory()?;
6 let evidence = Evidence {
7 kind: SourceKind::User,
8 uri: "codewhale://session/demo/message/1".into(),
9 locator: "user decision".into(),
10 sha256: None,
11 observed_at: 0,
12 };
13 let mut draft = Draft::note(
14 scope,
15 "Recall placement",
16 "Append recall to tool history; preserve the frozen system prefix.",
17 evidence,
18 );
19 draft.kind = Kind::Decision;
20 draft.key = Some("context.recall-placement".into());
21 let proposed = memory.capture(&access, "demo:1", draft)?;
22 let approved = memory.approve(
23 &access,
24 &proposed.memory.id,
25 proposed.memory.revision,
26 None,
27 &Snapshot::default(),
28 )?;
29 let report = memory.recall(
30 &access,
31 &Recall {
32 query: "recall prefix".into(),
33 ..Recall::default()
34 },
35 )?;
36 let packet = compile_context(&report.hits, &ByteCounter, &ContextBudget::default())?;
37 println!("{}", packet.text);
38 let deletion = memory.forget(&access, &approved.id, approved.revision)?;
39 println!("{}", serde_json::to_string(&deletion)?);
40 Ok(())
41 }
42
42 lines RUST