nx_companion_research_fetch.nx source
↩ module page · 44 lines · 3395 B
1// nx_companion_research_fetch.nx -- bank the COMPANION-AI landscape (June 2026) into the Library so
2// nx_companion_census can grade ELDER AI against the REAL shipped bar -- Replika (the incumbent; its
3// 2023 ERP-removal + Italy Garante ban are the cautionary record), Character.ai, Pi (Inflection),
4// ElliQ (eldercare), Kindroid + Nomi (uncensored/memory-first rivals), the OPEN persona ecosystem
5// (SillyTavern + character-card spec + Piper local TTS = the voice bar), and the MEASURED EVIDENCE
6// (npj Mental Health Replika/loneliness study; De Freitas AI-companions-reduce-loneliness).
7// Operator 2026-07-02: Elder AI companion beyond Replika, full human experience, Claude = benchmark
8// only; "use the nishi ecosystem and team and apis. if they dont have the capabilities build it into
9// them." Sources DIVERSE + AUTHORITATIVE, grouped in descriptive SECTIONS, engine-composed (rule-15
10// DRY: ONE fetch loop), NOT tsv, NOT wikipedia-only. Run SOLO.
11// Composes nx_research_engine (proven sovereign TLS-1.3 fetch + gzip-guard + HTML->clean text).
12// expect_exit: 0 license_tier: ORIGINAL
13import "nx_research_engine.nx"
14const K_MAGIC_8388608: i64 = 8388608
15
16func main() -> i64 {
17 let store: *TrustStore = rf_init()
18 if (store as i64) == 0 { rf_puts("comp: trust store load failed\n" as *u8); return 1 }
19 rf_puts("CA roots="); rf_putn(trust_store_count(store)); rf_puts(" -- COMPANION-AI landscape (Jun 2026) -> Library\n" as *u8)
20 let cap: i64 = K_MAGIC_8388608
21 let out: *u8 = sys_mmap(cap)
22 var ok: i64 = 0
23
24 rf_section("COMMERCIAL closed companions (the shipped product bar Elder AI must exceed)" as *u8)
25 ok = ok + rf_fetch_bank("https://replika.com" as *u8, "comp_replika_product" as *u8, store, out, cap)
26 ok = ok + rf_fetch_bank("https://en.wikipedia.org/wiki/Replika" as *u8, "comp_replika_history" as *u8, store, out, cap)
27 ok = ok + rf_fetch_bank("https://character.ai" as *u8, "comp_characterai" as *u8, store, out, cap)
28 ok = ok + rf_fetch_bank("https://pi.ai" as *u8, "comp_pi_inflection" as *u8, store, out, cap)
29 ok = ok + rf_fetch_bank("https://elliq.com" as *u8, "comp_elliq_eldercare" as *u8, store, out, cap)
30 ok = ok + rf_fetch_bank("https://kindroid.ai" as *u8, "comp_kindroid_uncensored" as *u8, store, out, cap)
31 ok = ok + rf_fetch_bank("https://nomi.ai" as *u8, "comp_nomi_memory" as *u8, store, out, cap)
32
33 rf_section("OPEN persona ecosystem (persona-freedom bar + the local voice bar)" as *u8)
34 ok = ok + rf_fetch_bank("https://github.com/SillyTavern/SillyTavern" as *u8, "comp_sillytavern" as *u8, store, out, cap)
35 ok = ok + rf_fetch_bank("https://github.com/malfoyslastname/character-card-spec-v2" as *u8, "comp_charcard_spec" as *u8, store, out, cap)
36 ok = ok + rf_fetch_bank("https://github.com/rhasspy/piper" as *u8, "comp_piper_tts" as *u8, store, out, cap)
37
38 rf_section("MEASURED EVIDENCE (companionship outcomes -- the axis nobody ships benchmarks for)" as *u8)
39 ok = ok + rf_fetch_bank("https://www.nature.com/articles/s44184-023-00047-6" as *u8, "comp_loneliness_replika_study" as *u8, store, out, cap)
40 ok = ok + rf_fetch_bank("https://arxiv.org/abs/2407.19096" as *u8, "comp_ai_companions_loneliness" as *u8, store, out, cap)
41
42 rf_puts("COMP BANKED: "); rf_putn(ok); rf_puts(" / 12 (run nx_library_harvest_v2 to index -> queryable via nx_search_cli)\n" as *u8)
43 return 0
44}