agent-trellis 0.2.0 → 0.4.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 (50) hide show
  1. package/README.md +12 -0
  2. package/dist/adapters/claude-code.d.ts +3 -2
  3. package/dist/adapters/claude-code.js +21 -8
  4. package/dist/adapters/codex.d.ts +6 -3
  5. package/dist/adapters/codex.js +41 -10
  6. package/dist/adapters/jsonMcp.d.ts +15 -5
  7. package/dist/adapters/jsonMcp.js +38 -29
  8. package/dist/adapters/kiro.d.ts +3 -2
  9. package/dist/adapters/kiro.js +22 -9
  10. package/dist/adapters/mcpPlan.d.ts +11 -6
  11. package/dist/adapters/mcpPlan.js +39 -6
  12. package/dist/cli.js +123 -10
  13. package/dist/commands/mcp.d.ts +101 -7
  14. package/dist/commands/mcp.js +227 -10
  15. package/dist/commands/memory.d.ts +47 -0
  16. package/dist/commands/memory.js +89 -0
  17. package/dist/commands/migrate.d.ts +30 -4
  18. package/dist/commands/migrate.js +83 -16
  19. package/dist/commands/onboard.d.ts +27 -8
  20. package/dist/commands/onboard.js +144 -17
  21. package/dist/commands/skill.d.ts +51 -0
  22. package/dist/commands/skill.js +104 -0
  23. package/dist/core/adapter.d.ts +18 -8
  24. package/dist/core/canonical.d.ts +26 -1
  25. package/dist/core/canonical.js +81 -3
  26. package/dist/core/types.d.ts +17 -0
  27. package/dist/lib/deepEqual.d.ts +8 -0
  28. package/dist/lib/deepEqual.js +26 -0
  29. package/dist/lib/dirEquals.d.ts +9 -0
  30. package/dist/lib/dirEquals.js +15 -1
  31. package/dist/lib/mcpMigrateRead.d.ts +69 -0
  32. package/dist/lib/mcpMigrateRead.js +188 -0
  33. package/dist/lib/mcpOwnership.d.ts +25 -0
  34. package/dist/lib/mcpOwnership.js +50 -0
  35. package/dist/lib/memoryGraph.d.ts +60 -0
  36. package/dist/lib/memoryGraph.js +101 -0
  37. package/dist/lib/realHomeSnapshot.d.ts +26 -0
  38. package/dist/lib/realHomeSnapshot.js +77 -0
  39. package/dist/lib/terminalPicker.d.ts +45 -0
  40. package/dist/lib/terminalPicker.js +193 -0
  41. package/dist/lib/tomlSection.d.ts +20 -6
  42. package/dist/lib/tomlSection.js +78 -12
  43. package/dist/pi-bridge/bundle.js +76 -46
  44. package/dist/pi-bridge/index.js +7 -2
  45. package/dist/probes/codex.js +10 -2
  46. package/docs/architecture.md +7 -4
  47. package/docs/getting-started.md +180 -15
  48. package/docs/roadmap.md +341 -0
  49. package/package.json +1 -1
  50. package/schema/servers.example.yaml +39 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-trellis",
3
- "version": "0.2.0",
3
+ "version": "0.4.0",
4
4
  "description": "A single source of capability for every coding agent — skills, MCP, subagents, memory, and secret policy, adapted natively into Claude Code, Codex, Kiro, and pi.",
5
5
  "license": "MIT",
6
6
  "author": "Paul Leo",
@@ -5,6 +5,16 @@
5
5
  # - Real values come from whatever already populates process env
6
6
  # (a plain `.env`-style file, 1Password's `op run`, etc.) — Trellis
7
7
  # does not store or transport secret values itself.
8
+ # - `static_env` is the one deliberate exception: values written into
9
+ # the agent's config verbatim, for something that was never a secret
10
+ # in the first place (an email address, an environment tag) — still
11
+ # scanned against `reject_patterns` like everything else, so a real
12
+ # credential accidentally placed there is still refused, not silently
13
+ # written (trellis-mcp-static-env-and-disabled-servers).
14
+ # - `enabled: false` keeps a server's definition in canonical without
15
+ # writing it to any agent — for a server you want to keep configured
16
+ # but not currently active everywhere, matching how a real agent's
17
+ # own config often already represents "off, not deleted".
8
18
  # - A server name that a host environment is known to inject at runtime
9
19
  # (see `known_host_injected` below) must not be redefined here — on
10
20
  # Codex this causes the entire process to fail to start, not just that
@@ -35,15 +45,32 @@ servers:
35
45
  # mem0/OpenMemory or a totalrecallai-class semantic-search server are
36
46
  # documented opt-in upgrades from this default, not silent defaults —
37
47
  # same section of docs/research.md.
48
+ #
49
+ # static_env.MEMORY_FILE_PATH: without this, the server's own unset-env
50
+ # default resolves relative to wherever `npx` happened to cache the
51
+ # package — not a stable location. Setting it explicitly to a path
52
+ # under ~/.trellis/ is also what lets `trellis memory sync`
53
+ # (trellis-memory-sync) find and write the same file the running
54
+ # server itself reads at startup.
38
55
  # memory:
39
56
  # transport: stdio
40
57
  # command: npx
41
58
  # args: ["-y", "@modelcontextprotocol/server-memory"]
59
+ # static_env:
60
+ # MEMORY_FILE_PATH: "~/.trellis/memories/graph.jsonl"
42
61
 
62
+ # `static_env`: a value that was never a secret in the first place (an
63
+ # email address, an environment tag) — written verbatim, never treated
64
+ # as a name to resolve. Prefer `env` (names only) whenever a value
65
+ # actually is a secret; `static_env` is the deliberate, visibly-different
66
+ # exception, still scanned against `reject_patterns` like any other
67
+ # literal field.
43
68
  tanka:
44
69
  transport: stdio
45
70
  command: tanka-mcp
46
- env: [TANKA_EMAIL, TANKA_ENV]
71
+ static_env:
72
+ TANKA_EMAIL: "you@example.com"
73
+ TANKA_ENV: "sd-or"
47
74
 
48
75
  gitlab:
49
76
  transport: stdio
@@ -51,10 +78,20 @@ servers:
51
78
  args: ["-y", "@zereight/mcp-gitlab"]
52
79
  env: [GITLAB_PERSONAL_ACCESS_TOKEN, GITLAB_API_URL]
53
80
 
81
+ # `enabled: false` keeps this definition in canonical without writing it
82
+ # to any agent — for something you want configured but not currently
83
+ # active anywhere. Remove the line (or set it to `true`) to turn it back
84
+ # on everywhere at once, with nothing to redefine.
85
+ supabase-db:
86
+ transport: stdio
87
+ command: npx
88
+ args: ["-y", "@supabase/mcp-server-supabase"]
89
+ env: [SUPABASE_ACCESS_TOKEN]
90
+ enabled: false
91
+
54
92
  figma:
55
93
  transport: http
56
94
  url: "https://mcp.figma.com/mcp"
57
- auth: oauth
58
95
 
59
96
  # Example of a private/agent-specific server: only Claude Code has a use
60
97
  # for this one, so the other three agents never see it defined at all.