- client: stdio + Streamable HTTP transports, 2025-11-25
handshake/list/call/ping, vault mcp_servers with sealed headers,
per-profile enable, description-hash pins, tool cache
- mcp_normalize: pasted JSON/TOML configs (type repair, ${VAR}
expansion from env then vault secrets, allow/deny lists);
github URLs resolve via registry/package/README with live
handshake verification before storing
- bridge: enabled tools enter lazy select_tools as
mcp_<server>_<tool>, dispatch fallback, approval like non-safe
shell, drift re-prompt, 64KB spill, per-call audit
- 7 agent tools: mcp_add/list/enable/disable/remove/tools/call
(native count 42->60 in README, was already stale at 53)
- server: --serve-mcp KEY (+ --mcp-port/--mcp-bind) serves all 60
native tools plus chat (agent turn, per-session history) and
completions (stateless, current model) over single-threaded
HTTP with Bearer auth, sessions, idle expiry; yolo documented
- rotation + plaintext-boot refusal cover sealed headers
- mcp.md contract with drift tests; 47 new tests; live loopback
verified (client->serve over real HTTP)
37 lines
452 B
Plaintext
37 lines
452 B
Plaintext
# State and sealed storage (never version)
|
|
.tai/
|
|
|
|
# Screenshots
|
|
*.png
|
|
*.jpg
|
|
*.jpeg
|
|
|
|
# HTML scratch files
|
|
*.html
|
|
*.md
|
|
!research/**/*.md
|
|
!uiflow.md
|
|
!cap.md
|
|
!skills.md
|
|
!settings.md
|
|
!mcp.md
|
|
|
|
# Backup files
|
|
*.bak
|
|
*.bak-*
|
|
*.corrupt-*
|
|
*.tmp
|
|
|
|
# OS artifacts
|
|
.DS_Store
|
|
Thumbs.db
|
|
|
|
# Integration test run logs (tai_test.py / tests/*.py artifacts)
|
|
tests/logs/
|
|
|
|
# Python bytecode cache
|
|
__pycache__/
|
|
|
|
# Stray pasted debug transcripts
|
|
tmux-scrollback-skill-issue.txt
|