trinity-tick/trinity

github
github Python analyzed 237ba34

Trinity: A Triune Architecture for AGI Long-Term Memory

maintainer
trinity-tick
licence
MIT
first seen
2026-07-16
last seen
2026-10-10
releases · 30d
0
github stars
1 reported
short id

drift

inferred · capture-to-capture
  1. HIGH code analysis flagged dynamic code execution in trinity-tick/trinity
  2. HIGH code analysis flagged dynamic code execution in trinity-tick/trinity
  3. HIGH code analysis flagged dynamic code execution in trinity-tick/trinity
  4. HIGH code analysis flagged dynamic code execution in trinity-tick/trinity
  5. HIGH code analysis flagged dynamic code execution in trinity-tick/trinity
  6. HIGH code analysis flagged dynamic code execution in trinity-tick/trinity
  7. HIGH code analysis flagged dynamic code execution in trinity-tick/trinity
  8. HIGH code analysis flagged dynamic code execution in trinity-tick/trinity
  9. HIGH code analysis flagged dynamic code execution in trinity-tick/trinity
  10. HIGH code analysis flagged dynamic code execution in trinity-tick/trinity
  11. HIGH code analysis flagged dynamic code execution in trinity-tick/trinity
  12. HIGH code analysis flagged dynamic code execution in trinity-tick/trinity
  13. HIGH code analysis flagged dynamic code execution in trinity-tick/trinity
  14. HIGH code analysis flagged dynamic code execution in trinity-tick/trinity

capabilities

13 tools
transport stdio · streamable-http · http · sse counts 13 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • audit_query
  • evolution_status
  • knowledge_search
  • memory_chronicle
  • memory_delete
  • memory_feedback
  • memory_search
  • memory_tag_search
  • memory_update
  • memory_write
  • skill_list
  • skill_load
  • trinity_diagnostics

skills & danger signals

github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 237ba34 · analyzer v33 · 6d ago

skills & prompt files 1

danger signals5

code evidence

vv8.2.1-458 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 1297

filesystem 400

  • fs auto-daemon/auto_daemon/cli.py :58 with open(args.file, "r", encoding="utf-8") as f:
  • fs (weak) benchmark/adaptive_routing.py :115 with open(r"C:\Users\Administrator\.trinity\bench-results\adaptive_routing.json", "w", encoding="utf-8") as f:
  • fs (weak) benchmark/answer_eval.py :49 raw = open(path, "r", encoding="utf-8-sig").read()
  • fs (weak) benchmark/answer_eval_strategies.py :43 for line in open(path, encoding="utf-8-sig"):
  • fs (weak) benchmark/archive/benchmark_coverage.py :8 from pathlib import Path
  • fs (weak) benchmark/archive/benchmark_coverage_20260812_185850_561.py :8 from pathlib import Path
  • fs (weak) benchmark/archive/by_type_r3.py :6 j = json.load(open(base + 'judge3_r3.json', encoding='utf-8'))
  • fs (weak) benchmark/archive/by_type_r3b.py :6 j = json.load(open(base + 'judge3_r3.json', encoding='utf-8'))
  • fs (weak) benchmark/archive/check_multi_recall.py :13 d = json.load(open(r'C:\Users\Administrator\.trinity\bench-official\longmemeval_s_cleaned.json', encoding='utf-8'))
  • fs (weak) benchmark/archive/compare_ab.py :5 b = json.load(open(sys.argv[1], encoding='utf-8'))['records']
  • fs (weak) benchmark/archive/diag_con.py :6 b = json.load(open(base + 'mc_baseline.json', encoding='utf-8'))['records']
  • fs (weak) benchmark/archive/diag_turn.py :6 b = json.load(open(base + 'turn_baseline.json', encoding='utf-8'))['records']
show 28 more
  • fs (weak) benchmark/archive/diff_route.py :6 r1 = json.load(open(base + 'r5_route_50.json', encoding='utf-8'))['records']
  • fs (weak) benchmark/archive/diff_route2.py :6 r1 = json.load(open(base + 'r5_route_50.json', encoding='utf-8'))['records']
  • fs (weak) benchmark/archive/diff_route3.py :6 r1 = json.load(open(base + 'r5_route_50.json', encoding='utf-8'))['records']
  • fs (weak) benchmark/archive/estimate_full.py :30 j = json.load(open(base + jfile, encoding='utf-8'))
  • fs (weak) benchmark/archive/graphql_load_light.py :4 from pathlib import Path
  • fs (weak) benchmark/archive/graphql_load_test.py :12 from pathlib import Path
  • fs (weak) benchmark/archive/graphql_load_v2.py :4 from pathlib import Path
  • fs (weak) benchmark/archive/graphql_load_v3.py :4 from pathlib import Path
  • fs (weak) benchmark/archive/inspect_pref.py :14 rep = json.load(open(base + f, encoding='utf-8'))
  • fs (weak) benchmark/archive/inspect_pref2.py :13 rep = json.load(open(base + f, encoding='utf-8'))
  • fs (weak) benchmark/archive/judge_ab.py :14 with open(os.path.expanduser('~/.dsh/.credentials.yaml'), 'r', encoding='utf-8-sig') as f:
  • fs (weak) benchmark/archive/judge_pref2.py :15 with open(os.path.expanduser('~/.dsh/.credentials.yaml'), 'r', encoding='utf-8-sig') as f:
  • fs (weak) benchmark/archive/lme_judge2.py :18 with open(os.path.expanduser('~/.dsh/.credentials.yaml'), 'r', encoding='utf-8-sig') as f:
  • fs (weak) benchmark/archive/lme_multi_con.py :31 with open(os.path.expanduser('~/.dsh/.credentials.yaml'), 'r', encoding='utf-8-sig') as f:
  • fs (weak) benchmark/archive/lme_multi_extract.py :23 with open(os.path.expanduser('~/.dsh/.credentials.yaml'), 'r', encoding='utf-8-sig') as f:
  • fs (weak) benchmark/archive/lme_multi_retr.py :15 with open(os.path.expanduser('~/.dsh/.credentials.yaml'), 'r', encoding='utf-8-sig') as f:
  • fs (weak) benchmark/archive/lme_multi_turn.py :26 with open(os.path.expanduser('~/.dsh/.credentials.yaml'), 'r', encoding='utf-8-sig') as f:
  • fs (weak) benchmark/archive/lme_pref_ab.py :12 with open(os.path.expanduser('~/.dsh/.credentials.yaml'), 'r', encoding='utf-8-sig') as f:
  • fs (weak) benchmark/archive/lme_prop.py :15 with open(os.path.expanduser('~/.dsh/.credentials.yaml'), 'r', encoding='utf-8-sig') as f:
  • fs (weak) benchmark/archive/lme_qa2_rerun.py :17 with open(os.path.expanduser('~/.dsh/.credentials.yaml'), 'r', encoding='utf-8-sig') as f:
  • fs (weak) benchmark/archive/lme_qa2b_rerun.py :12 with open(os.path.expanduser('~/.dsh/.credentials.yaml'), 'r', encoding='utf-8-sig') as f:
  • fs (weak) benchmark/archive/lme_qa3_turnlevel.py :18 with open(os.path.expanduser('~/.dsh/.credentials.yaml'), 'r', encoding='utf-8-sig') as f:
  • fs (weak) benchmark/archive/lme_qa_judge.py :16 with open(os.path.expanduser('~/.dsh/.credentials.yaml'), 'r', encoding='utf-8-sig') as f:
  • fs (weak) benchmark/archive/lme_qa_opt.py :24 with open(os.path.expanduser('~/.dsh/.credentials.yaml'), 'r', encoding='utf-8-sig') as f:
  • fs (weak) benchmark/archive/lme_qa_opt2.py :23 with open(os.path.expanduser('~/.dsh/.credentials.yaml'), 'r', encoding='utf-8-sig') as f:
  • fs (weak) benchmark/archive/lme_qa_opt3.py :37 with open(os.path.expanduser('~/.dsh/.credentials.yaml'), 'r', encoding='utf-8-sig') as f:
  • fs (weak) benchmark/archive/lme_qa_opt_reserve.py :23 with open(os.path.expanduser('~/.dsh/.credentials.yaml'), 'r', encoding='utf-8-sig') as f:
  • fs (weak) benchmark/archive/lme_qa_route_chronos.py :16 with open(os.path.expanduser('~/.dsh/.credentials.yaml'), 'r', encoding='utf-8-sig') as f:
· 360 more not shown — this panel samples each group; the count above is the real total.

shell / exec 38

  • shell (weak) benchmark/run_benchmark.py :15 import subprocess
  • shell dsh-ops/tmp_split.py :73 b = subprocess.run(["go", "build", "./internal/gateway/"], capture_output=True, text=True)
  • shell dsh-ops/trinity-embed-observe.py :13 import subprocess
  • shell gateway/server.py :367 import subprocess as _sp
  • shell health_check.py :7 import subprocess, json, os, sys
  • shell (weak) scripts/a2a_cross_process.py :26 import subprocess
  • shell (weak) scripts/anti_loop_self_check.py :22 import subprocess
  • shell (weak) scripts/brain_report.py :84 import subprocess
  • shell (weak) scripts/dsh_plugin_smoke.py :17 import subprocess
  • shell (weak) scripts/env_doctor.py :23 import subprocess
  • shell (weak) scripts/evolve_ab.py :26 import subprocess
  • shell (weak) scripts/evolve_core_gate.py :55 r1 = subprocess.run([sys.executable, "-c", "; ".join(bcode)], capture_output=True, text=True)
show 26 more
  • shell (weak) scripts/evolve_loop.py :26 import subprocess
  • shell (weak) scripts/evolve_patch.py :16 import subprocess
  • shell (weak) scripts/evolve_signal.py :26 import subprocess
  • shell (weak) scripts/export_memories_markdown.py :33 import subprocess
  • shell (weak) scripts/federation_mini_demo.py :17 import subprocess
  • shell (weak) scripts/fulltest_gate.py :10 import subprocess
  • shell (weak) scripts/multi_process_stress.py :23 import subprocess
  • shell (weak) scripts/pg_restore_drill.py :16 r = subprocess.run(args, capture_output=True, text=True, env=ENV)
  • shell (weak) scripts/regression_tools.py :3 import subprocess
  • shell (weak) scripts/run_all_self_tests.py :124 import subprocess as _sp
  • shell (weak) scripts/trinity_service.py :36 import subprocess
  • shell (weak) scripts/verify_mcp_server.py :21 import subprocess
  • shell (weak) scripts/with_lease.py :21 import subprocess
  • shell (weak) tests/test_crash_recovery.py :17 import subprocess
  • shell (weak) tests/test_ops_layer_20260901.py :17 import subprocess
  • shell (weak) tests/unit/test_export_agents_md.py :10 import subprocess
  • shell (weak) tests/unit/test_rl_feedback_loop.py :130 import subprocess
  • shell (weak) tests/unit/test_worker_retry.py :12 import subprocess
  • shell (weak) tests/unit/test_worker_watchdog.py :13 import subprocess
  • shell trinity/automation/engine.py :34 import subprocess
  • shell (weak) trinity/benchmark/runner.py :15 import subprocess
  • shell trinity/benchmark_scripts/run_benchmark.py :15 import subprocess
  • shell trinity/collector/__main__.py :12 import subprocess
  • shell trinity/evolution/goals.py :349 import subprocess as _sp
  • shell trinity/kgraph/graph.py :287 os.system('mkdir "%s"' % dir_path)
  • shell (weak) trinity/tests/conftest.py :12 import subprocess

network 122

  • net (weak) benchmark/adaptive_routing.py :18 import requests
  • net (weak) benchmark/archive/judge_ab.py :6 import json, os, sys, urllib.request, argparse, time
  • net (weak) benchmark/archive/judge_pref2.py :7 import json, os, urllib.request, argparse
  • net (weak) benchmark/archive/lme_judge2.py :9 import json, os, urllib.request, argparse
  • net (weak) benchmark/archive/lme_multi_con.py :19 import json, os, sys, time, tempfile, urllib.request, argparse, re
  • net (weak) benchmark/archive/lme_multi_extract.py :10 import json, os, sys, time, tempfile, urllib.request, argparse, re
  • net (weak) benchmark/archive/lme_multi_retr.py :3 import json, os, sys, time, tempfile, urllib.request, argparse, re
  • net (weak) benchmark/archive/lme_multi_turn.py :14 import json, os, sys, time, tempfile, urllib.request, argparse, re
  • net (weak) benchmark/archive/lme_pref_ab.py :3 import json, os, sys, time, tempfile, urllib.request, argparse
  • net (weak) benchmark/archive/lme_prop.py :3 import json, os, sys, time, tempfile, urllib.request, argparse, re
  • net (weak) benchmark/archive/lme_qa2_rerun.py :8 import json, os, sys, time, tempfile, urllib.request, argparse
  • net (weak) benchmark/archive/lme_qa2b_rerun.py :3 import json, os, sys, time, tempfile, urllib.request, argparse
show 28 more
  • net (weak) benchmark/archive/lme_qa3_turnlevel.py :8 import json, os, sys, time, tempfile, urllib.request, argparse
  • net (weak) benchmark/archive/lme_qa_judge.py :7 import json, os, sys, time, argparse, urllib.request
  • net (weak) benchmark/archive/lme_qa_opt.py :12 import json, os, sys, time, tempfile, urllib.request, argparse, re
  • net (weak) benchmark/archive/lme_qa_opt2.py :9 import json, os, sys, time, tempfile, urllib.request, argparse, re
  • net (weak) benchmark/archive/lme_qa_opt3.py :21 import json, os, sys, time, tempfile, urllib.request, argparse, re
  • net (weak) benchmark/archive/lme_qa_opt_reserve.py :11 import json, os, sys, time, tempfile, urllib.request, argparse, re
  • net (weak) benchmark/archive/lme_qa_route_chronos.py :3 import json, os, sys, time, tempfile, urllib.request, argparse, re
  • net (weak) benchmark/archive/probe_con.py :3 import json, os, urllib.request
  • net (weak) benchmark/compress_economics.py :20 import requests
  • net (weak) benchmark/consistency_stress.py :19 import requests
  • net (weak) benchmark/judge3.py :10 import json, os, sys, urllib.request, argparse, time
  • net (weak) benchmark/lme_qa_route.py :12 import json, os, sys, time, tempfile, urllib.request, argparse, re
  • net (weak) benchmark/lme_route3.py :16 import json, os, sys, time, tempfile, urllib.request, argparse, re
  • net (weak) benchmark/longmemeval_v2_runner.py :142 import urllib.request
  • net (weak) benchmark/memsyco_evaluator.py :425 import urllib.request as _ur
  • net (weak) benchmarks/datasets.py :12 import urllib.request
  • net compliance/audit.py :10 import requests
  • net dsh-ops/trinity-embed-observe.py :16 import urllib.request
  • net dsh-ops/trinity-sync-agent.py :40 import requests
  • net (weak) examples/api_client.py :7 import requests
  • net federation/sync_protocol.py :15 import requests
  • net gateway/client.py :13 import requests
  • net gateway/server.py :31 import requests
  • net governance/governance.py :17 import requests
  • net harvesters/example_plugin.py :12 import requests
  • net health_check.py :8 import urllib.request
  • net (weak) market/demo.py :14 import requests
  • net (weak) scripts/a2a_cross_process.py :31 import urllib.request
· 82 more not shown — this panel samples each group; the count above is the real total.

secrets 53

  • secrets (weak) benchmark/answer_eval.py :327 api_key = os.environ.get("TRINITY_LLM_API_KEY") or creds.get("DEEPSEEK_API_KEY")
  • secrets (weak) benchmark/answer_eval_strategies.py :47 key = os.environ.get("TRINITY_LLM_API_KEY") or creds.get("DEEPSEEK_API_KEY")
  • secrets (weak) benchmark/citation_coverage.py :171 api_key = os.environ.get("TRINITY_LLM_API_KEY") or creds.get("DEEPSEEK_API_KEY")
  • secrets (weak) benchmark/longmemeval_qa_evaluator.py :112 default=os.environ.get("OPENAI_API_KEY", ""),
  • secrets (weak) benchmark/official_lm_eval.py :47 api_key = os.environ.get("TRINITY_LLM_API_KEY") or creds.get("DEEPSEEK_API_KEY")
  • secrets (weak) benchmark/phase2_llm_extract_live.py :19 os.environ["TRINITY_LLM_API_KEY"] = api_key
  • secrets (weak) benchmark/run_benchmark.py :44 default=os.environ.get("OPENAI_API_KEY", ""),
  • secrets (weak) examples/langchain_agent.py :17 if not os.environ.get("OPENAI_API_KEY"):
  • secrets gateway/server.py :39 TRINITY_API_KEY = os.environ.get("TRINITY_API_KEY", "")
  • secrets (weak) scripts/active_set_health.py :63 password=os.environ.get("TRINITY_PG_PASSWORD", "trinity"))
  • secrets (weak) scripts/auto_session_summary.py :23 key = os.environ.get("DEEPSEEK_API_KEY") or os.environ.get("TRINITY_LLM_API_KEY")
  • secrets (weak) scripts/backfill_sqlite_from_pg.py :50 password=os.environ.get("TRINITY_PG_PASSWORD", "trinity"))
show 28 more
  • secrets (weak) scripts/beam_benchmark.py :43 "password": os.environ.get("PGPASSWORD", ""),
  • secrets (weak) scripts/beam_data_generator.py :30 "password": os.environ.get("PGPASSWORD", ""),
  • secrets (weak) scripts/brain_report.py :160 password=os.environ.get("TRINITY_PG_PASSWORD", "trinity"),
  • secrets (weak) scripts/build_hard_holdout.py :85 api_key = os.environ.get("TRINITY_LLM_API_KEY") or creds.get("DEEPSEEK_API_KEY")
  • secrets (weak) scripts/cognition_agent.py :33 password=os.environ.get("TRINITY_PG_PASSWORD", "trinity"),
  • secrets (weak) scripts/compression_faithfulness.py :92 api_key = os.environ.get("TRINITY_LLM_API_KEY") or creds.get("DEEPSEEK_API_KEY")
  • secrets (weak) scripts/event_extractor.py :38 password=os.environ.get("TRINITY_PG_PASSWORD", "trinity"),
  • secrets (weak) scripts/evolve_core_gate.py :14 if not os.environ.get("TRINITY_LLM_API_KEY"):
  • secrets (weak) scripts/extract_skills.py :97 password=os.environ.get("TRINITY_PG_PASSWORD", "trinity"),
  • secrets (weak) scripts/graph_densify.py :75 password=os.environ.get("TRINITY_PG_PASSWORD", "trinity"),
  • secrets (weak) scripts/market_list_high_value.py :31 password=os.environ.get("TRINITY_PG_PASSWORD", "trinity"),
  • secrets (weak) scripts/memory_purification.py :37 password=os.environ.get("TRINITY_PG_PASSWORD", "trinity"),
  • secrets (weak) scripts/pg_conn_check.py :21 password=os.environ.get("TRINITY_PG_PASSWORD", "trinity"),
  • secrets (weak) scripts/reconcile_pg_sqlite.py :50 password=os.environ.get("TRINITY_PG_PASSWORD", "trinity"))
  • secrets (weak) scripts/replay_consolidation.py :40 password=os.environ.get("TRINITY_PG_PASSWORD", "trinity"),
  • secrets (weak) scripts/restore_high_value_memories.py :91 password=os.environ.get("TRINITY_PG_PASSWORD", "trinity"))
  • secrets (weak) scripts/reversible_compress.py :31 password=os.environ.get("TRINITY_PG_PASSWORD", "trinity"),
  • secrets (weak) scripts/run_decay_compress.py :80 password = password or os.environ.get("PGPASSWORD", "postgres")
  • secrets (weak) scripts/run_memory_tiers.py :97 password = password or os.environ.get("PGPASSWORD", "postgres")
  • secrets (weak) scripts/run_pagetree_summaries.py :79 api_key = os.environ.get("TRINITY_LLM_API_KEY") or creds.get("DEEPSEEK_API_KEY")
  • secrets (weak) scripts/run_prop_ab.py :30 os.environ["DEEPSEEK_API_KEY"] = api_key
  • secrets (weak) scripts/session_state_demo.py :53 key = os.environ.get("TRINITY_LLM_API_KEY") or creds.get("DEEPSEEK_API_KEY")
  • secrets (weak) scripts/slo_report.py :53 key = os.environ.get("GATEWAY_API_KEY", "")
  • secrets (weak) scripts/sqlite_pg_mirror.py :334 "password": args.pg_password or os.environ.get("TRINITY_PG_PASSWORD")
  • secrets (weak) scripts/trinity_config_cli.py :37 import getpass
  • secrets (weak) scripts/value_recalibration.py :33 password=os.environ.get("TRINITY_PG_PASSWORD", "trinity"),
  • secrets (weak) tests/test_llm_compress.py :133 os.environ["TRINITY_LLM_API_KEY"] = "env-key"
  • secrets (weak) tests/test_pg_llm_extract.py :121 password=os.environ.get("TRINITY_PG_PASSWORD", "trinity"))
· 13 more not shown — this panel samples each group; the count above is the real total.

database 221

  • db (weak) benchmark/longmemeval_official_runner.py :51 import sqlite3 as _sq
  • db (weak) benchmark/phase2_llm_extract_live.py :46 import sqlite3
  • db (weak) benchmark/sync_pool_from_db.py :17 import sqlite3
  • db (weak) benchmark/sync_pool_from_db_v2.py :31 import sqlite3
  • db dashboard/app.py :21 import sqlite3
  • db dsh-ops/apply-pg-alignment.py :30 import psycopg2
  • db dsh-ops/trinity-sync-agent.py :33 import sqlite3
  • db (weak) scripts/active_set_health.py :11 import sqlite3
  • db (weak) scripts/auto_session_summary.py :76 import sqlite3
  • db (weak) scripts/backfill_content_hash.py :8 import sqlite3
  • db (weak) scripts/backfill_memory_layers.py :26 import sqlite3
  • db (weak) scripts/backfill_pool_status.py :28 import sqlite3
show 28 more
  • db (weak) scripts/backfill_sqlite_from_pg.py :33 import sqlite3
  • db (weak) scripts/backfill_tokenized.py :7 import sqlite3
  • db (weak) scripts/beam_benchmark.py :123 import psycopg2
  • db (weak) scripts/beam_data_generator.py :429 import psycopg2
  • db (weak) scripts/brain_cognition_eval.py :59 import psycopg2
  • db (weak) scripts/brain_health_check.py :89 import psycopg2
  • db (weak) scripts/brain_report.py :20 import sqlite3
  • db (weak) scripts/brain_social_loop_demo.py :77 import psycopg2
  • db (weak) scripts/brainification_guard.py :21 import psycopg2
  • db (weak) scripts/budget_doc_share.py :26 import sqlite3
  • db (weak) scripts/build_dense_sparse_kgraph.py :20 import sqlite3
  • db (weak) scripts/build_graph_relations.py :18 import sqlite3
  • db (weak) scripts/build_kgraph.py :14 import sqlite3
  • db (weak) scripts/capability_self_check.py :16 import psycopg2
  • db (weak) scripts/cleanup_expired_agents.py :7 import sqlite3, sys, time
  • db (weak) scripts/cleanup_noise.py :20 import sqlite3
  • db (weak) scripts/closed_loop_audit.py :14 import psycopg2
  • db (weak) scripts/cognition_agent.py :27 import psycopg2
  • db (weak) scripts/compact_structure.py :265 import sqlite3
  • db (weak) scripts/compliance_check.py :26 import sqlite3
  • db (weak) scripts/compress_economics_report.py :53 import sqlite3
  • db (weak) scripts/compression_faithfulness.py :66 import sqlite3
  • db (weak) scripts/consistency_check.py :37 import sqlite3
  • db (weak) scripts/consolidate_temporal.py :33 import sqlite3
  • db (weak) scripts/db_health.py :7 import sqlite3, sys, os
  • db (weak) scripts/dream_replay.py :38 import psycopg2.extras
  • db (weak) scripts/dsh_plugin_smoke.py :16 import sqlite3
  • db (weak) scripts/entity_dedup.py :170 import sqlite3
· 181 more not shown — this panel samples each group; the count above is the real total.

tool registrations 13

  • memory_feedback trinity/mcp/tools/memory_tools.py :133
  • memory_search trinity/mcp/tools/memory_tools.py :159
  • memory_write trinity/mcp/tools/memory_tools.py :233
  • memory_update trinity/mcp/tools/memory_tools.py :305
  • memory_delete trinity/mcp/tools/memory_tools.py :336
  • audit_query trinity/mcp/tools/memory_tools.py :370
  • trinity_diagnostics trinity/mcp/tools/memory_tools.py :404
  • memory_chronicle trinity/mcp/tools/memory_tools.py :421
  • skill_list trinity/mcp/tools/memory_tools.py :483
  • skill_load trinity/mcp/tools/memory_tools.py :492
  • evolution_status trinity/mcp/tools/memory_tools.py :511
  • knowledge_search trinity/mcp/tools/memory_tools.py :555
show 1 more
  • memory_tag_search trinity/mcp/tools/memory_tools.py :581

declared dependencies 23

  • mcp@>=1.0.0
  • numpy@>=1.24.0
  • jieba@>=0.42.1
  • pytest@>=7.4.0
  • pytest-cov@>=5.0.0
  • ruff@>=0.1.0
  • scikit-learn@>=1.0.0
  • Pillow@>=10.0.0
  • requests@>=2.28.0
  • fastapi@>=0.100.0
  • uvicorn@>=0.20.0
  • strawberry-graphql@>=0.224.0
show 11 more
  • psycopg2-binary@>=2.9.0
  • sqlite-vec@>=0.1.6
  • faiss-cpu@>=1.7.0
  • onnxruntime@>=1.17.0
  • sentence-transformers@>=2.2.0
  • rank-bm25@>=0.2.0
  • ollama@>=0.1.0
  • redis@>=4.0.0
  • psutil@>=5.0.0
  • pyyaml@>=6.0.0
  • trinity-memory@*

perm:untrusted 1

  • untrusted (weak) scripts/verify_pg_vector.py :21 v = requests.post("http://127.0.0.1:11434/api/embed", json={"model": "bge-m3", "input": [q]}, timeout=120).json()["embeddings"][0]

transport_posture 3

  • network-listening, binds all interfaces, no auth detected dashboard/app.py :375 app.run(host="0.0.0.0", port=dash_port, debug=False)
  • network-listening, binds all interfaces, no auth detected trinity/a2a/transports/__init__.py :15 set_transport(protocol, "grpc", host="0.0.0.0", port=50051)
  • network-listening, binds all interfaces, no auth detected trinity/a2a/transports/grpc_transport.py :165 servicer.start(host="0.0.0.0", port=50051)