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.
- package/LICENSE +21 -0
- package/README.md +173 -0
- package/bin/antigravity.mjs +212 -0
- package/bin/init.mjs +36 -0
- package/bin/oci-sniper.sh +69 -0
- package/bin/total-recall.mjs +229 -0
- package/docs/ARCHITECTURE.md +251 -0
- package/docs/IDE_INTEGRATION.md +112 -0
- package/package.json +71 -0
- package/scaffold/.agent/skills/total-recall/SKILL.md +195 -0
- package/scaffold/.agent/skills/total-recall/evals/evals.json +20 -0
- package/scaffold/.agent/skills/total-recall/memory-vault/concepts/cli-help-reference.md +145 -0
- package/scaffold/.agent/skills/total-recall/memory-vault/invariants/operating-instructions.md +75 -0
- package/scaffold/.agent/skills/total-recall/memory-vault/preferences/always-websearch-gap.md +16 -0
- package/scaffold/.agent/skills/total-recall/memory-vault/preferences/topic-research-sop.md +17 -0
- package/scaffold/.agent/skills/total-recall/references/api-reference.md +187 -0
- package/scaffold/.agent/skills/total-recall/references/architecture-reference.md +81 -0
- package/scaffold/.agent/skills/total-recall/references/cli-reference.md +103 -0
- package/scaffold/.agent/skills/total-recall/references/ssss-reference.md +88 -0
- package/scaffold/.agent/skills/total-recall/references/troubleshooting.md +68 -0
- package/scaffold/.agent/skills/total-recall/scripts/sync-repo.mjs +83 -0
- package/scaffold/.agent/skills/total-recall/skills/cli-agents/SKILL.md +122 -0
- package/scaffold/.agent/skills/total-recall/skills/cli-agents/agents.yml +27 -0
- package/scaffold/.agent/skills/total-recall/skills/cli-agents/references/antigravity.txt +20 -0
- package/scaffold/.agent/skills/total-recall/skills/cli-agents/references/claude.txt +58 -0
- package/scaffold/.agent/skills/total-recall/skills/cli-agents/references/codex.txt +81 -0
- package/scaffold/.agent/skills/total-recall/skills/cli-agents/references/gemini.txt +44 -0
- package/scaffold/.agent/skills/total-recall/skills/research/SKILL.md +337 -0
- package/scaffold/.agent/skills/total-recall/skills/skill/SKILL.md +281 -0
- package/scaffold/.agent/skills/total-recall/skills/skill/assets/skill-template/SKILL.md +20 -0
- package/scaffold/.agent/skills/total-recall/skills/skill/evals/evals.json +20 -0
- package/scaffold/.agent/skills/total-recall/skills/skill/hooks/on-skill-add.sh +14 -0
- package/scaffold/.agent/skills/total-recall/skills/skill/hooks/on-skill-delete.sh +14 -0
- package/scaffold/.agent/skills/total-recall/skills/skill/learnings/.gitkeep +0 -0
- package/scaffold/.agent/skills/total-recall/skills/skill/references/.gitkeep +0 -0
- package/scaffold/.agent/skills/total-recall/skills/skill/scripts/.gitkeep +0 -0
- package/scaffold/.agent/skills/total-recall/skills/skill/scripts/create-skill.sh +65 -0
- package/scaffold/.agent/skills/total-recall/skills/skill/scripts/enforce-skill-optimization.mjs +135 -0
- package/scaffold/.agent/skills/total-recall/skills/skill/scripts/find-skills.mjs +124 -0
- package/scaffold/.agent/skills/total-recall/skills/skill/scripts/scan-skill.mjs +207 -0
- package/scaffold/.agent/skills/total-recall/skills/skill/scripts/skill-watcher.mjs +64 -0
- package/scaffold/.agent/skills/total-recall/skills/skill/subagents/audit-all-skills.md +62 -0
- package/scaffold/.agent/skills/total-recall/skills/ssss/SKILL.md +27 -0
- package/scaffold/.agent/skills/total-recall/skills/ssss/evals/evals.json +17 -0
- package/scaffold/.agent/skills/total-recall/skills/ssss/references/ssss-spec.md +117 -0
- package/scaffold/.agent/skills/total-recall/skills/ssss/scripts/validate-schema.mjs +54 -0
- package/scaffold/.agent/skills/total-recall/skills/ssss/subagents/audit-ssss-node.md +9 -0
- package/scaffold/.agent/skills/total-recall/subagents/total-recall-diagnostician.md +13 -0
- package/src/cli/agent-dir.mjs +105 -0
- package/src/cli/backup.mjs +313 -0
- package/src/cli/brain.mjs +224 -0
- package/src/cli/chat.mjs +74 -0
- package/src/cli/config.mjs +247 -0
- package/src/cli/connect.mjs +872 -0
- package/src/cli/daemon.mjs +228 -0
- package/src/cli/deploy-ui.mjs +1793 -0
- package/src/cli/deploy.mjs +1726 -0
- package/src/cli/doctor.mjs +254 -0
- package/src/cli/dream.mjs +80 -0
- package/src/cli/forget.mjs +92 -0
- package/src/cli/friction.mjs +21 -0
- package/src/cli/generate-pat.mjs +65 -0
- package/src/cli/hash-password.mjs +22 -0
- package/src/cli/help.mjs +153 -0
- package/src/cli/import-rules.mjs +102 -0
- package/src/cli/ingest/index.mjs +318 -0
- package/src/cli/ingest/parsers/chrome-bookmarks.mjs +238 -0
- package/src/cli/ingest/parsers/google-keep.mjs +147 -0
- package/src/cli/ingest/parsers/search-history.mjs +142 -0
- package/src/cli/ingest/parsers/youtube-history.mjs +181 -0
- package/src/cli/ingest/utils/dedup.mjs +69 -0
- package/src/cli/ingest/utils/takeout-walker.mjs +101 -0
- package/src/cli/ingest.mjs +102 -0
- package/src/cli/init.mjs +736 -0
- package/src/cli/integration-dispatcher.mjs +128 -0
- package/src/cli/lint.mjs +166 -0
- package/src/cli/map.mjs +194 -0
- package/src/cli/migrate.mjs +87 -0
- package/src/cli/rebuild.mjs +88 -0
- package/src/cli/recall.mjs +219 -0
- package/src/cli/relay.mjs +518 -0
- package/src/cli/remember.mjs +306 -0
- package/src/cli/research.mjs +381 -0
- package/src/cli/reset-password.mjs +75 -0
- package/src/cli/restore.mjs +135 -0
- package/src/cli/setup.mjs +616 -0
- package/src/cli/share.mjs +180 -0
- package/src/cli/skill.mjs +313 -0
- package/src/cli/snapshot.mjs +108 -0
- package/src/cli/start.mjs +63 -0
- package/src/cli/status.mjs +296 -0
- package/src/cli/sync.mjs +383 -0
- package/src/cli/uninstall.mjs +613 -0
- package/src/cli/upgrade.mjs +141 -0
- package/src/cli/wizard.html +3682 -0
- package/src/core/blackboard.mjs +54 -0
- package/src/core/clarity-rewriter.mjs +770 -0
- package/src/core/conclusion-writer.mjs +259 -0
- package/src/core/config.mjs +277 -0
- package/src/core/conflict-detector.mjs +536 -0
- package/src/core/crypto.mjs +107 -0
- package/src/core/daemon-control.mjs +158 -0
- package/src/core/daemon-loop.mjs +364 -0
- package/src/core/dream.mjs +347 -0
- package/src/core/drift-detector.mjs +143 -0
- package/src/core/embeddings.mjs +632 -0
- package/src/core/emergency-alerts.mjs +137 -0
- package/src/core/evolution.mjs +107 -0
- package/src/core/fact-seeker.mjs +1602 -0
- package/src/core/friction.mjs +95 -0
- package/src/core/import-rules.mjs +308 -0
- package/src/core/inference-engine.mjs +367 -0
- package/src/core/logger.mjs +75 -0
- package/src/core/memory-layers.mjs +96 -0
- package/src/core/migrate.mjs +116 -0
- package/src/core/notifications.mjs +77 -0
- package/src/core/operation-validator.mjs +272 -0
- package/src/core/optimizer.mjs +330 -0
- package/src/core/pattern_detector.mjs +113 -0
- package/src/core/post-mortem.mjs +413 -0
- package/src/core/protect-instructions.mjs +148 -0
- package/src/core/quick-capture.mjs +145 -0
- package/src/core/research-queue.mjs +431 -0
- package/src/core/research.mjs +461 -0
- package/src/core/runtime.mjs +515 -0
- package/src/core/sandbox.mjs +163 -0
- package/src/core/scheduler.mjs +569 -0
- package/src/core/schema.mjs +333 -0
- package/src/core/search.mjs +219 -0
- package/src/core/semantic-index.mjs +276 -0
- package/src/core/session-watcher.mjs +850 -0
- package/src/core/snapshot.mjs +133 -0
- package/src/core/source-adapters.mjs +1038 -0
- package/src/core/steering.mjs +137 -0
- package/src/core/surface.mjs +444 -0
- package/src/core/task_runner.mjs +125 -0
- package/src/core/tts.mjs +142 -0
- package/src/core/usage-tracker.mjs +349 -0
- package/src/core/vault-cache.mjs +76 -0
- package/src/core/vault.mjs +273 -0
- package/src/core/watchdog.mjs +236 -0
- package/src/server/api.mjs +944 -0
- package/src/server/auth.mjs +410 -0
- package/src/server/index.mjs +868 -0
- package/src/server/keys.mjs +181 -0
- package/src/server/rest.mjs +1652 -0
- package/src/server/route-manifest.json +77 -0
- package/src/server/routes/_shared.mjs +93 -0
- package/src/server/routes/keys.mjs +55 -0
- package/src/server/routes/memory.mjs +249 -0
- package/src/server/routes/sessions.mjs +336 -0
- package/src/server/routes/share.mjs +138 -0
- package/src/server/tools.mjs +618 -0
- package/templates/Caddyfile +37 -0
- package/templates/com.totalrecall.backup.plist +42 -0
- package/templates/com.totalrecall.daemon.plist +40 -0
- package/templates/com.totalrecall.duckdns.plist +23 -0
- package/templates/com.totalrecall.server.plist +46 -0
- package/templates/default-config/budget.yml +6 -0
- package/templates/default-config/runtime.yml +11 -0
- package/templates/default-config/security.yml +53 -0
- package/templates/default-config/voice.yml +34 -0
- package/templates/obsidian-queries/conflicts.md +26 -0
- package/templates/obsidian-queries/daily.md +17 -0
- package/templates/obsidian-queries/index.md +38 -0
- package/templates/obsidian-queries/skills.md +14 -0
- package/templates/onboarding-interview.md +72 -0
- package/templates/skill_engineering.md +40 -0
- package/templates/total-recall-daemon.service +21 -0
- 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__&token=__TOKEN__&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,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
|