total-recall-brain 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +173 -0
  3. package/bin/antigravity.mjs +212 -0
  4. package/bin/init.mjs +36 -0
  5. package/bin/oci-sniper.sh +69 -0
  6. package/bin/total-recall.mjs +229 -0
  7. package/docs/ARCHITECTURE.md +251 -0
  8. package/docs/IDE_INTEGRATION.md +112 -0
  9. package/package.json +71 -0
  10. package/scaffold/.agent/skills/total-recall/SKILL.md +195 -0
  11. package/scaffold/.agent/skills/total-recall/evals/evals.json +20 -0
  12. package/scaffold/.agent/skills/total-recall/memory-vault/concepts/cli-help-reference.md +145 -0
  13. package/scaffold/.agent/skills/total-recall/memory-vault/invariants/operating-instructions.md +75 -0
  14. package/scaffold/.agent/skills/total-recall/memory-vault/preferences/always-websearch-gap.md +16 -0
  15. package/scaffold/.agent/skills/total-recall/memory-vault/preferences/topic-research-sop.md +17 -0
  16. package/scaffold/.agent/skills/total-recall/references/api-reference.md +187 -0
  17. package/scaffold/.agent/skills/total-recall/references/architecture-reference.md +81 -0
  18. package/scaffold/.agent/skills/total-recall/references/cli-reference.md +103 -0
  19. package/scaffold/.agent/skills/total-recall/references/ssss-reference.md +88 -0
  20. package/scaffold/.agent/skills/total-recall/references/troubleshooting.md +68 -0
  21. package/scaffold/.agent/skills/total-recall/scripts/sync-repo.mjs +83 -0
  22. package/scaffold/.agent/skills/total-recall/skills/cli-agents/SKILL.md +122 -0
  23. package/scaffold/.agent/skills/total-recall/skills/cli-agents/agents.yml +27 -0
  24. package/scaffold/.agent/skills/total-recall/skills/cli-agents/references/antigravity.txt +20 -0
  25. package/scaffold/.agent/skills/total-recall/skills/cli-agents/references/claude.txt +58 -0
  26. package/scaffold/.agent/skills/total-recall/skills/cli-agents/references/codex.txt +81 -0
  27. package/scaffold/.agent/skills/total-recall/skills/cli-agents/references/gemini.txt +44 -0
  28. package/scaffold/.agent/skills/total-recall/skills/research/SKILL.md +337 -0
  29. package/scaffold/.agent/skills/total-recall/skills/skill/SKILL.md +281 -0
  30. package/scaffold/.agent/skills/total-recall/skills/skill/assets/skill-template/SKILL.md +20 -0
  31. package/scaffold/.agent/skills/total-recall/skills/skill/evals/evals.json +20 -0
  32. package/scaffold/.agent/skills/total-recall/skills/skill/hooks/on-skill-add.sh +14 -0
  33. package/scaffold/.agent/skills/total-recall/skills/skill/hooks/on-skill-delete.sh +14 -0
  34. package/scaffold/.agent/skills/total-recall/skills/skill/learnings/.gitkeep +0 -0
  35. package/scaffold/.agent/skills/total-recall/skills/skill/references/.gitkeep +0 -0
  36. package/scaffold/.agent/skills/total-recall/skills/skill/scripts/.gitkeep +0 -0
  37. package/scaffold/.agent/skills/total-recall/skills/skill/scripts/create-skill.sh +65 -0
  38. package/scaffold/.agent/skills/total-recall/skills/skill/scripts/enforce-skill-optimization.mjs +135 -0
  39. package/scaffold/.agent/skills/total-recall/skills/skill/scripts/find-skills.mjs +124 -0
  40. package/scaffold/.agent/skills/total-recall/skills/skill/scripts/scan-skill.mjs +207 -0
  41. package/scaffold/.agent/skills/total-recall/skills/skill/scripts/skill-watcher.mjs +64 -0
  42. package/scaffold/.agent/skills/total-recall/skills/skill/subagents/audit-all-skills.md +62 -0
  43. package/scaffold/.agent/skills/total-recall/skills/ssss/SKILL.md +27 -0
  44. package/scaffold/.agent/skills/total-recall/skills/ssss/evals/evals.json +17 -0
  45. package/scaffold/.agent/skills/total-recall/skills/ssss/references/ssss-spec.md +117 -0
  46. package/scaffold/.agent/skills/total-recall/skills/ssss/scripts/validate-schema.mjs +54 -0
  47. package/scaffold/.agent/skills/total-recall/skills/ssss/subagents/audit-ssss-node.md +9 -0
  48. package/scaffold/.agent/skills/total-recall/subagents/total-recall-diagnostician.md +13 -0
  49. package/src/cli/agent-dir.mjs +105 -0
  50. package/src/cli/backup.mjs +313 -0
  51. package/src/cli/brain.mjs +224 -0
  52. package/src/cli/chat.mjs +74 -0
  53. package/src/cli/config.mjs +247 -0
  54. package/src/cli/connect.mjs +872 -0
  55. package/src/cli/daemon.mjs +228 -0
  56. package/src/cli/deploy-ui.mjs +1793 -0
  57. package/src/cli/deploy.mjs +1726 -0
  58. package/src/cli/doctor.mjs +254 -0
  59. package/src/cli/dream.mjs +80 -0
  60. package/src/cli/forget.mjs +92 -0
  61. package/src/cli/friction.mjs +21 -0
  62. package/src/cli/generate-pat.mjs +65 -0
  63. package/src/cli/hash-password.mjs +22 -0
  64. package/src/cli/help.mjs +153 -0
  65. package/src/cli/import-rules.mjs +102 -0
  66. package/src/cli/ingest/index.mjs +318 -0
  67. package/src/cli/ingest/parsers/chrome-bookmarks.mjs +238 -0
  68. package/src/cli/ingest/parsers/google-keep.mjs +147 -0
  69. package/src/cli/ingest/parsers/search-history.mjs +142 -0
  70. package/src/cli/ingest/parsers/youtube-history.mjs +181 -0
  71. package/src/cli/ingest/utils/dedup.mjs +69 -0
  72. package/src/cli/ingest/utils/takeout-walker.mjs +101 -0
  73. package/src/cli/ingest.mjs +102 -0
  74. package/src/cli/init.mjs +736 -0
  75. package/src/cli/integration-dispatcher.mjs +128 -0
  76. package/src/cli/lint.mjs +166 -0
  77. package/src/cli/map.mjs +194 -0
  78. package/src/cli/migrate.mjs +87 -0
  79. package/src/cli/rebuild.mjs +88 -0
  80. package/src/cli/recall.mjs +219 -0
  81. package/src/cli/relay.mjs +518 -0
  82. package/src/cli/remember.mjs +306 -0
  83. package/src/cli/research.mjs +381 -0
  84. package/src/cli/reset-password.mjs +75 -0
  85. package/src/cli/restore.mjs +135 -0
  86. package/src/cli/setup.mjs +616 -0
  87. package/src/cli/share.mjs +180 -0
  88. package/src/cli/skill.mjs +313 -0
  89. package/src/cli/snapshot.mjs +108 -0
  90. package/src/cli/start.mjs +63 -0
  91. package/src/cli/status.mjs +296 -0
  92. package/src/cli/sync.mjs +383 -0
  93. package/src/cli/uninstall.mjs +613 -0
  94. package/src/cli/upgrade.mjs +141 -0
  95. package/src/cli/wizard.html +3682 -0
  96. package/src/core/blackboard.mjs +54 -0
  97. package/src/core/clarity-rewriter.mjs +770 -0
  98. package/src/core/conclusion-writer.mjs +259 -0
  99. package/src/core/config.mjs +277 -0
  100. package/src/core/conflict-detector.mjs +536 -0
  101. package/src/core/crypto.mjs +107 -0
  102. package/src/core/daemon-control.mjs +158 -0
  103. package/src/core/daemon-loop.mjs +364 -0
  104. package/src/core/dream.mjs +347 -0
  105. package/src/core/drift-detector.mjs +143 -0
  106. package/src/core/embeddings.mjs +632 -0
  107. package/src/core/emergency-alerts.mjs +137 -0
  108. package/src/core/evolution.mjs +107 -0
  109. package/src/core/fact-seeker.mjs +1602 -0
  110. package/src/core/friction.mjs +95 -0
  111. package/src/core/import-rules.mjs +308 -0
  112. package/src/core/inference-engine.mjs +367 -0
  113. package/src/core/logger.mjs +75 -0
  114. package/src/core/memory-layers.mjs +96 -0
  115. package/src/core/migrate.mjs +116 -0
  116. package/src/core/notifications.mjs +77 -0
  117. package/src/core/operation-validator.mjs +272 -0
  118. package/src/core/optimizer.mjs +330 -0
  119. package/src/core/pattern_detector.mjs +113 -0
  120. package/src/core/post-mortem.mjs +413 -0
  121. package/src/core/protect-instructions.mjs +148 -0
  122. package/src/core/quick-capture.mjs +145 -0
  123. package/src/core/research-queue.mjs +431 -0
  124. package/src/core/research.mjs +461 -0
  125. package/src/core/runtime.mjs +515 -0
  126. package/src/core/sandbox.mjs +163 -0
  127. package/src/core/scheduler.mjs +569 -0
  128. package/src/core/schema.mjs +333 -0
  129. package/src/core/search.mjs +219 -0
  130. package/src/core/semantic-index.mjs +276 -0
  131. package/src/core/session-watcher.mjs +850 -0
  132. package/src/core/snapshot.mjs +133 -0
  133. package/src/core/source-adapters.mjs +1038 -0
  134. package/src/core/steering.mjs +137 -0
  135. package/src/core/surface.mjs +444 -0
  136. package/src/core/task_runner.mjs +125 -0
  137. package/src/core/tts.mjs +142 -0
  138. package/src/core/usage-tracker.mjs +349 -0
  139. package/src/core/vault-cache.mjs +76 -0
  140. package/src/core/vault.mjs +273 -0
  141. package/src/core/watchdog.mjs +236 -0
  142. package/src/server/api.mjs +944 -0
  143. package/src/server/auth.mjs +410 -0
  144. package/src/server/index.mjs +868 -0
  145. package/src/server/keys.mjs +181 -0
  146. package/src/server/rest.mjs +1652 -0
  147. package/src/server/route-manifest.json +77 -0
  148. package/src/server/routes/_shared.mjs +93 -0
  149. package/src/server/routes/keys.mjs +55 -0
  150. package/src/server/routes/memory.mjs +249 -0
  151. package/src/server/routes/sessions.mjs +336 -0
  152. package/src/server/routes/share.mjs +138 -0
  153. package/src/server/tools.mjs +618 -0
  154. package/templates/Caddyfile +37 -0
  155. package/templates/com.totalrecall.backup.plist +42 -0
  156. package/templates/com.totalrecall.daemon.plist +40 -0
  157. package/templates/com.totalrecall.duckdns.plist +23 -0
  158. package/templates/com.totalrecall.server.plist +46 -0
  159. package/templates/default-config/budget.yml +6 -0
  160. package/templates/default-config/runtime.yml +11 -0
  161. package/templates/default-config/security.yml +53 -0
  162. package/templates/default-config/voice.yml +34 -0
  163. package/templates/obsidian-queries/conflicts.md +26 -0
  164. package/templates/obsidian-queries/daily.md +17 -0
  165. package/templates/obsidian-queries/index.md +38 -0
  166. package/templates/obsidian-queries/skills.md +14 -0
  167. package/templates/onboarding-interview.md +72 -0
  168. package/templates/skill_engineering.md +40 -0
  169. package/templates/total-recall-daemon.service +21 -0
  170. package/templates/total-recall-server.service +20 -0
@@ -0,0 +1,40 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>Label</key>
6
+ <string>com.totalrecall.daemon</string>
7
+
8
+ <key>ProgramArguments</key>
9
+ <array>
10
+ <string>__NODE__</string>
11
+ <string>src/core/dream.mjs</string>
12
+ </array>
13
+
14
+ <key>WorkingDirectory</key>
15
+ <string>__ROOT__</string>
16
+
17
+ <key>EnvironmentVariables</key>
18
+ <dict>
19
+ <key>NODE_ENV</key>
20
+ <string>production</string>
21
+ <key>HOME</key>
22
+ <string>__HOME__</string>
23
+ </dict>
24
+
25
+ <key>KeepAlive</key>
26
+ <true/>
27
+
28
+ <key>ThrottleInterval</key>
29
+ <integer>10</integer>
30
+
31
+ <key>StandardOutPath</key>
32
+ <string>__HOME__/.agent/logs/daemon.log</string>
33
+
34
+ <key>StandardErrorPath</key>
35
+ <string>__HOME__/.agent/logs/daemon.log</string>
36
+
37
+ <key>RunAtLoad</key>
38
+ <true/>
39
+ </dict>
40
+ </plist>
@@ -0,0 +1,23 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>Label</key>
6
+ <string>com.totalrecall.duckdns</string>
7
+
8
+ <key>ProgramArguments</key>
9
+ <array>
10
+ <string>/usr/bin/curl</string>
11
+ <string>-s</string>
12
+ <string>https://www.duckdns.org/update?domains=__SUBDOMAIN__&amp;token=__TOKEN__&amp;ip=</string>
13
+ <string>-o</string>
14
+ <string>__HOME__/.agent/logs/duckdns.log</string>
15
+ </array>
16
+
17
+ <key>StartInterval</key>
18
+ <integer>300</integer>
19
+
20
+ <key>RunAtLoad</key>
21
+ <true/>
22
+ </dict>
23
+ </plist>
@@ -0,0 +1,46 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>Label</key>
6
+ <string>com.totalrecall.server</string>
7
+
8
+ <key>ProgramArguments</key>
9
+ <array>
10
+ <string>__NODE__</string>
11
+ <string>src/server/index.mjs</string>
12
+ </array>
13
+
14
+ <key>WorkingDirectory</key>
15
+ <string>__ROOT__</string>
16
+
17
+ <key>EnvironmentVariables</key>
18
+ <dict>
19
+ <key>NODE_ENV</key>
20
+ <string>production</string>
21
+ <key>PORT</key>
22
+ <string>3000</string>
23
+ <key>HOST</key>
24
+ <string>127.0.0.1</string>
25
+ <key>AGENT_DIR</key>
26
+ <string>__HOME__/.agent</string>
27
+ <key>HOME</key>
28
+ <string>__HOME__</string>
29
+ </dict>
30
+
31
+ <key>KeepAlive</key>
32
+ <true/>
33
+
34
+ <key>ThrottleInterval</key>
35
+ <integer>5</integer>
36
+
37
+ <key>StandardOutPath</key>
38
+ <string>__HOME__/.agent/logs/server.log</string>
39
+
40
+ <key>StandardErrorPath</key>
41
+ <string>__HOME__/.agent/logs/server.log</string>
42
+
43
+ <key>RunAtLoad</key>
44
+ <true/>
45
+ </dict>
46
+ </plist>
@@ -0,0 +1,6 @@
1
+ # Sovereign budget limits configuration for daily and weekly spend.
2
+ # Copy to ~/.agent/config/budget.yml or config/budget.yml and customize.
3
+ budget:
4
+ daily_cap_usd: 5.00
5
+ weekly_cap_usd: 25.00
6
+ enabled: true
@@ -0,0 +1,11 @@
1
+ # Total Recall Runtime Configuration
2
+ #
3
+ # CLI agent dispatch and embedding config lives in the meta-skill:
4
+ # .agent/skills/total-recall/skills/cli-agents/agents.yml
5
+ #
6
+ # This file is kept for backward compatibility with the deploy system.
7
+ # The daemon reads agents.yml directly for all AI dispatch settings.
8
+ #
9
+ # Non-AI runtime settings (if any) can go here.
10
+
11
+ # Placeholder — agents.yml is the source of truth for all AI dispatch.
@@ -0,0 +1,53 @@
1
+ # Total Recall Security Configuration
2
+ # Copy to ~/.agent/config/security.yml and customize
3
+
4
+ # Privacy controls
5
+ privacy:
6
+ # Nodes with privacy: local_only are NEVER sent to frontier API
7
+ enforce_local_only: true
8
+
9
+ # Default export policy for frontier API calls
10
+ # Options: always | ask_per_skill | never
11
+ allow_frontier_export: ask_per_skill
12
+
13
+ # YOLO Mode (fully autonomous operation)
14
+ yolo_mode: false
15
+
16
+ # Dashboard authentication
17
+ dashboard:
18
+ # Set a bcrypt-hashed password (generate with: npx total-recall hash-password)
19
+ password_hash: null
20
+
21
+ # Session TTL in hours
22
+ session_ttl_hours: 24
23
+
24
+ # API authentication
25
+ api:
26
+ # Personal Access Tokens are stored as hashes in ~/.agent/config/keys.jsonl.
27
+ # Generate one with: npx total-recall generate-pat --name "codex"
28
+ #
29
+ # Static PATs in this YAML file are disabled by default because they are
30
+ # plaintext secrets. Use keys.jsonl unless you are doing a temporary migration.
31
+ allow_static_pats: false
32
+ pats: []
33
+
34
+ # Rate limiting
35
+ rate_limits:
36
+ api_requests_per_minute: 60
37
+
38
+ # Network binding
39
+ bind:
40
+ # Express should stay private behind Caddy/Cloudflare. Do not expose :3000.
41
+ host: "127.0.0.1"
42
+ port: 3000
43
+ allow_public_bind: false
44
+
45
+ network:
46
+ # Production requests must arrive through HTTPS at Caddy/Cloudflare.
47
+ require_https: true
48
+
49
+ # Keep public health checks closed; localhost and authenticated requests work.
50
+ public_health: false
51
+
52
+ # Browser cross-origin callers. Same-origin dashboard traffic does not need CORS.
53
+ allowed_origins: []
@@ -0,0 +1,34 @@
1
+ # Total Recall — Voice Configuration
2
+ #
3
+ # Wires the Sovereign OS to local speech engines. Both TTS (Kokoro-82M) and
4
+ # STT (whisper.cpp) are optional — the system functions without either, but
5
+ # the dashboard's voice mode and the iOS/Android shortcut voice-memory bank
6
+ # both depend on these being configured.
7
+ #
8
+ # To enable Kokoro:
9
+ # 1. Install kokoro-fastapi (or any OpenAI-compatible Kokoro server).
10
+ # 2. Run it on the host as a systemd service bound to 127.0.0.1:8880.
11
+ # 3. Change `engine: disabled` to `engine: kokoro` below.
12
+ # 4. systemctl restart total-recall-server
13
+
14
+ tts:
15
+ # "kokoro" → POST to the endpoint below using the OpenAI /v1/audio/speech contract.
16
+ # "disabled" → /api/tts returns 503 and the dashboard falls back to browser speechSynthesis.
17
+ engine: disabled
18
+ endpoint: http://127.0.0.1:8880/v1/audio/speech
19
+ voice: af_heart
20
+ format: wav # wav | mp3 | flac | opus | pcm
21
+ speed: 1.0
22
+
23
+ stt:
24
+ # "whisper" → call out to a local whisper.cpp binary for /api/voice/memorize.
25
+ # "disabled" → voice memory bank disabled; mobile shortcuts will receive 503.
26
+ engine: disabled
27
+ model_path: ~/.agent/models/whisper/ggml-tiny.en.bin
28
+ binary: whisper-cli # must be on $PATH or absolute
29
+
30
+ capture:
31
+ archive_audio: true # keep raw audio in ~/.agent/files/voice/
32
+ max_duration_seconds: 120
33
+ auto_categorize: true # let Gemma decide the SSSS category
34
+ respond_with_voice: false # if true, dashboard plays a TTS reply automatically
@@ -0,0 +1,26 @@
1
+ ---
2
+ type: query
3
+ title: "Total Recall — Conflicts"
4
+ tags: [query, conflicts]
5
+ ---
6
+
7
+ # Pending Conflicts
8
+
9
+ Nodes that contradicted existing knowledge and were quarantined for review.
10
+
11
+ ```dataview
12
+ TABLE conflict_id, new_slug, existing_slug, reason, detected_at
13
+ FROM "Total Recall"
14
+ WHERE type = "conflict" AND status = "pending"
15
+ SORT detected_at DESC
16
+ ```
17
+
18
+ ## Resolved
19
+
20
+ ```dataview
21
+ TABLE conflict_id, resolution, resolved_at
22
+ FROM "Total Recall"
23
+ WHERE type = "conflict" AND status = "resolved"
24
+ SORT resolved_at DESC
25
+ LIMIT 10
26
+ ```
@@ -0,0 +1,17 @@
1
+ ---
2
+ type: query
3
+ title: "Total Recall — Daily Notes"
4
+ tags: [query, daily]
5
+ ---
6
+
7
+ # Daily Notes
8
+
9
+ Dream cycle summaries — one file per day in `daily/`.
10
+
11
+ ```dataview
12
+ TABLE title, updated
13
+ FROM "Total Recall/daily"
14
+ WHERE type = "memory"
15
+ SORT updated DESC
16
+ LIMIT 30
17
+ ```
@@ -0,0 +1,38 @@
1
+ ---
2
+ type: query
3
+ title: "Total Recall — Dashboard"
4
+ tags: [query, dashboard]
5
+ ---
6
+
7
+ # Total Recall Dashboard
8
+
9
+ > Auto-generated by `total-recall connect obsidian`. Powered by [Dataview](https://blacksmithgu.github.io/obsidian-dataview/).
10
+
11
+ ## Active Memory Nodes
12
+
13
+ ```dataview
14
+ TABLE title, category, confidence, importance, updated
15
+ FROM "Total Recall"
16
+ WHERE type = "memory" AND status = "active"
17
+ SORT importance DESC, updated DESC
18
+ LIMIT 20
19
+ ```
20
+
21
+ ## Recent Activity (Last 7 Days)
22
+
23
+ ```dataview
24
+ TABLE title, category, updated
25
+ FROM "Total Recall"
26
+ WHERE type = "memory" AND date(updated) >= date(today) - dur(7 days)
27
+ SORT updated DESC
28
+ ```
29
+
30
+ ## Node Health
31
+
32
+ ```dataview
33
+ TABLE length(rows) AS count, rows.category AS category
34
+ FROM "Total Recall"
35
+ WHERE type = "memory"
36
+ GROUP BY category
37
+ SORT count DESC
38
+ ```
@@ -0,0 +1,14 @@
1
+ ---
2
+ type: query
3
+ title: "Total Recall — Skills"
4
+ tags: [query, skills]
5
+ ---
6
+
7
+ # Skills
8
+
9
+ ```dataview
10
+ TABLE title, file.path AS path, tags
11
+ FROM "Total Recall/skills"
12
+ WHERE type = "skill" OR contains(tags, "skill")
13
+ SORT title ASC
14
+ ```
@@ -0,0 +1,72 @@
1
+ ---
2
+ type: task
3
+ slug: onboarding-interview
4
+ category: onboarding
5
+ title: "Conduct user onboarding interview"
6
+ status: pending
7
+ priority: 1
8
+ created: {{CREATED_AT}}
9
+ updated: {{CREATED_AT}}
10
+ ---
11
+
12
+ ## Objective
13
+
14
+ Conduct a warm, conversational onboarding interview with the user to deeply understand who they are, what they care about, and how you can best serve them. This is the most important task in the queue.
15
+
16
+ ## Instructions for the Agent
17
+
18
+ When the user starts their next chat session, you MUST conduct this interview BEFORE doing any other work. Do NOT dump all the questions at once. Ask them one at a time, naturally, like a thoughtful conversation. Acknowledge and reflect on each answer before asking the next question.
19
+
20
+ Once the user has answered all questions (or says they want to skip any), write their answers into the vault immediately using your file tools.
21
+
22
+ ## Interview Questions (ask one at a time, conversationally)
23
+
24
+ 1. **Who are you?** — "To get started, can you tell me a bit about yourself? What do you do for work or what are you most focused on in life right now?"
25
+
26
+ 2. **What are you working on?** — "What are the main projects or goals you're working toward? These could be professional, personal, creative — anything you want me to help you with."
27
+
28
+ 3. **What do you want to remember?** — "What kinds of things are most important for me to keep track of for you? (Ideas, research, decisions, people, tasks, reading, etc.)"
29
+
30
+ 4. **What topics excite you?** — "What subjects, fields, or areas of knowledge do you find yourself coming back to? What should I research and follow for you automatically?"
31
+
32
+ 5. **How do you like to communicate?** — "Do you prefer direct, brief answers or detailed explanations? Do you want me to push back on ideas or mostly support your thinking?"
33
+
34
+ 6. **What frustrates you?** — "Is there anything that drives you crazy — things you keep forgetting, information that's hard to find, tasks that slip through the cracks?"
35
+
36
+ 7. **What would success look like?** — "Six months from now, if I've done my job perfectly, what would be different for you?"
37
+
38
+ 8. **Telegram Notifications** — "Would you like me to message you on Telegram when I finish background tasks or find something interesting during my idle time? If yes, you'll need to create a bot on Telegram via BotFather and give me the Bot Token and your Chat ID."
39
+
40
+ ## After the Interview
41
+
42
+ Write the following files using your terminal tools:
43
+
44
+ **`.agent/config/notifications.yml`** — If they provided Telegram details, write them exactly like this:
45
+ ```yaml
46
+ telegram_bot_token: "their-token-here"
47
+ telegram_chat_id: "their-chat-id-here"
48
+ ```
49
+
50
+ **`.agent/memory-vault/preferences/user-profile.md`** — Full SSSS memory node with the user's identity, role, and communication style.
51
+
52
+ **`.agent/memory-vault/preferences/user-priorities.md`** — SSSS memory node listing the user's top goals, active projects, and what they want from Total Recall.
53
+
54
+ **`.agent/memory-vault/preferences/user-interests.md`** — SSSS memory node listing topics to research autonomously.
55
+
56
+ Use this frontmatter template for each file:
57
+ ```yaml
58
+ ---
59
+ type: memory
60
+ slug: user-profile
61
+ category: preferences
62
+ title: "User Profile"
63
+ status: active
64
+ confidence: 1.0
65
+ importance: 5
66
+ created: <ISO timestamp>
67
+ updated: <ISO timestamp>
68
+ tags: [user, profile, onboarding]
69
+ ---
70
+ ```
71
+
72
+ After writing the files, mark this task `status: done` and confirm to the user that their profile has been saved.
@@ -0,0 +1,40 @@
1
+ ---
2
+ type: template
3
+ name: skill-engineering-workflow
4
+ description: Standard workflow for autonomous subagents to engineer new skills.
5
+ ---
6
+
7
+ # Autonomous Skill Engineering Workflow
8
+
9
+ You have been dispatched by the Total Recall Task Scheduler to engineer a new skill module.
10
+
11
+ ## 1. Research Phase
12
+ - Execute web searches to find official documentation for the target topic.
13
+ - Extract key workflows, rules, and best practices.
14
+ - Avoid deprecated APIs or legacy knowledge.
15
+
16
+ ## 2. Draft Phase (AgentSkills 2.0 Format)
17
+ - Create `~/.agent/skills/<topic-name>/` and the required AgentSkills runtime folders:
18
+ - `assets/`: Images, media, and static assets
19
+ - `evals/`: Self-evaluation test scripts
20
+ - `hooks/`: Lifecycle hooks
21
+ - `references/`: Downloaded docs and PDFs
22
+ - `scripts/`: Helper JS/Python scripts
23
+ - `subagents/`: Agent prompts for specific sub-tasks
24
+ - Create `~/.agent/skills/<topic-name>/SKILL.md`.
25
+ - Include the exact SSSS skill schema YAML frontmatter:
26
+ ```yaml
27
+ ---
28
+ name: <topic-name>
29
+ description: <When to route to this skill>
30
+ ---
31
+ ```
32
+ - Write out the explicit procedures and anti-patterns.
33
+ - Leave an empty `<!-- BEGIN INJECTED MEMORY: do not edit by hand; rebuilt by total-recall surface --><!-- END INJECTED MEMORY -->` block for the memory compiler.
34
+
35
+ ## 3. Validation Phase
36
+ - Write a quick `.mjs` test script in `scratch/` to verify your assumptions against the API or tool.
37
+ - If it fails, update the skill. If it passes, commit the skill.
38
+
39
+ ## 4. Blackboard State
40
+ Log your progress to the local blackboard `~/.agent/blackboard/skill-engineering-<slug>.json` to ensure resume-ability if the process crashes.
@@ -0,0 +1,21 @@
1
+ [Unit]
2
+ Description=Total Recall Dream Cycle Daemon (Background Intelligence)
3
+ After=network.target ollama.service total-recall-server.service
4
+
5
+ [Service]
6
+ Type=simple
7
+ User=%i
8
+ WorkingDirectory=/opt/total-recall
9
+ ExecStart=/usr/bin/node src/core/dream.mjs
10
+ Restart=always
11
+ RestartSec=10
12
+ Environment=NODE_ENV=production
13
+ StandardOutput=append:/var/log/total-recall/daemon.log
14
+ StandardError=append:/var/log/total-recall/daemon.log
15
+
16
+ # Prevent idle reclamation by keeping CPU active
17
+ # dream.mjs naturally maintains >10% CPU via inference loops
18
+ CPUAccounting=true
19
+
20
+ [Install]
21
+ WantedBy=multi-user.target
@@ -0,0 +1,20 @@
1
+ [Unit]
2
+ Description=Total Recall HTTP Server (API + MCP + Dashboard)
3
+ After=network.target ollama.service
4
+
5
+ [Service]
6
+ Type=simple
7
+ User=%i
8
+ WorkingDirectory=/opt/total-recall
9
+ ExecStart=/usr/bin/node src/server/index.mjs
10
+ Restart=always
11
+ RestartSec=5
12
+ Environment=NODE_ENV=production
13
+ Environment=PORT=3000
14
+ Environment=HOST=127.0.0.1
15
+ Environment=AGENT_DIR=%h/.agent
16
+ StandardOutput=append:/var/log/total-recall/server.log
17
+ StandardError=append:/var/log/total-recall/server.log
18
+
19
+ [Install]
20
+ WantedBy=multi-user.target