@jungjaehoon/mama-os 0.19.0 → 0.20.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 (240) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/README.md +90 -70
  3. package/dist/agent/agent-loop.d.ts +7 -1
  4. package/dist/agent/agent-loop.d.ts.map +1 -1
  5. package/dist/agent/agent-loop.js +150 -20
  6. package/dist/agent/agent-loop.js.map +1 -1
  7. package/dist/agent/code-act/host-bridge.d.ts +3 -1
  8. package/dist/agent/code-act/host-bridge.d.ts.map +1 -1
  9. package/dist/agent/code-act/host-bridge.js +28 -4
  10. package/dist/agent/code-act/host-bridge.js.map +1 -1
  11. package/dist/agent/delegation-executor.d.ts +49 -0
  12. package/dist/agent/delegation-executor.d.ts.map +1 -0
  13. package/dist/agent/delegation-executor.js +692 -0
  14. package/dist/agent/delegation-executor.js.map +1 -0
  15. package/dist/agent/gateway-tool-executor.d.ts +41 -14
  16. package/dist/agent/gateway-tool-executor.d.ts.map +1 -1
  17. package/dist/agent/gateway-tool-executor.js +718 -685
  18. package/dist/agent/gateway-tool-executor.js.map +1 -1
  19. package/dist/agent/gateway-tools.md +3 -1
  20. package/dist/agent/mama-tool-handlers.d.ts +2 -2
  21. package/dist/agent/mama-tool-handlers.d.ts.map +1 -1
  22. package/dist/agent/mama-tool-handlers.js +60 -10
  23. package/dist/agent/mama-tool-handlers.js.map +1 -1
  24. package/dist/agent/persistent-cli-process.d.ts +35 -0
  25. package/dist/agent/persistent-cli-process.d.ts.map +1 -1
  26. package/dist/agent/persistent-cli-process.js +193 -16
  27. package/dist/agent/persistent-cli-process.js.map +1 -1
  28. package/dist/agent/post-tool-handler.d.ts +3 -2
  29. package/dist/agent/post-tool-handler.d.ts.map +1 -1
  30. package/dist/agent/post-tool-handler.js +22 -11
  31. package/dist/agent/post-tool-handler.js.map +1 -1
  32. package/dist/agent/pre-compact-handler.d.ts +3 -2
  33. package/dist/agent/pre-compact-handler.d.ts.map +1 -1
  34. package/dist/agent/pre-compact-handler.js +8 -12
  35. package/dist/agent/pre-compact-handler.js.map +1 -1
  36. package/dist/agent/tool-registry.d.ts.map +1 -1
  37. package/dist/agent/tool-registry.js +1 -1
  38. package/dist/agent/tool-registry.js.map +1 -1
  39. package/dist/agent/types.d.ts +125 -1
  40. package/dist/agent/types.d.ts.map +1 -1
  41. package/dist/agent/types.js.map +1 -1
  42. package/dist/api/agent-graph-handler.d.ts +9 -0
  43. package/dist/api/agent-graph-handler.d.ts.map +1 -0
  44. package/dist/api/agent-graph-handler.js +543 -0
  45. package/dist/api/agent-graph-handler.js.map +1 -0
  46. package/dist/api/agent-raw-handler.d.ts +56 -0
  47. package/dist/api/agent-raw-handler.d.ts.map +1 -0
  48. package/dist/api/agent-raw-handler.js +248 -0
  49. package/dist/api/agent-raw-handler.js.map +1 -0
  50. package/dist/api/agent-situation-handler.d.ts +14 -0
  51. package/dist/api/agent-situation-handler.d.ts.map +1 -0
  52. package/dist/api/agent-situation-handler.js +383 -0
  53. package/dist/api/agent-situation-handler.js.map +1 -0
  54. package/dist/api/auth-middleware.d.ts +1 -0
  55. package/dist/api/auth-middleware.d.ts.map +1 -1
  56. package/dist/api/auth-middleware.js +30 -0
  57. package/dist/api/auth-middleware.js.map +1 -1
  58. package/dist/api/entity-audit-handler.d.ts +13 -0
  59. package/dist/api/entity-audit-handler.d.ts.map +1 -0
  60. package/dist/api/entity-audit-handler.js +124 -0
  61. package/dist/api/entity-audit-handler.js.map +1 -0
  62. package/dist/api/entity-audit-queue.d.ts +74 -0
  63. package/dist/api/entity-audit-queue.d.ts.map +1 -0
  64. package/dist/api/entity-audit-queue.js +123 -0
  65. package/dist/api/entity-audit-queue.js.map +1 -0
  66. package/dist/api/entity-audit-runner.d.ts +9 -0
  67. package/dist/api/entity-audit-runner.d.ts.map +1 -0
  68. package/dist/api/entity-audit-runner.js +240 -0
  69. package/dist/api/entity-audit-runner.js.map +1 -0
  70. package/dist/api/entity-review-handler.d.ts +18 -0
  71. package/dist/api/entity-review-handler.d.ts.map +1 -0
  72. package/dist/api/entity-review-handler.js +521 -0
  73. package/dist/api/entity-review-handler.js.map +1 -0
  74. package/dist/api/graph-api.d.ts.map +1 -1
  75. package/dist/api/graph-api.js +210 -0
  76. package/dist/api/graph-api.js.map +1 -1
  77. package/dist/api/index.d.ts +20 -0
  78. package/dist/api/index.d.ts.map +1 -1
  79. package/dist/api/index.js +49 -2
  80. package/dist/api/index.js.map +1 -1
  81. package/dist/api/memory-provenance-handler.d.ts +3 -0
  82. package/dist/api/memory-provenance-handler.d.ts.map +1 -0
  83. package/dist/api/memory-provenance-handler.js +120 -0
  84. package/dist/api/memory-provenance-handler.js.map +1 -0
  85. package/dist/api/worker-envelope.d.ts +26 -0
  86. package/dist/api/worker-envelope.d.ts.map +1 -0
  87. package/dist/api/worker-envelope.js +176 -0
  88. package/dist/api/worker-envelope.js.map +1 -0
  89. package/dist/auth/claude-code-auth.d.ts +12 -0
  90. package/dist/auth/claude-code-auth.d.ts.map +1 -0
  91. package/dist/auth/claude-code-auth.js +85 -0
  92. package/dist/auth/claude-code-auth.js.map +1 -0
  93. package/dist/auth/index.d.ts +2 -0
  94. package/dist/auth/index.d.ts.map +1 -1
  95. package/dist/auth/index.js +3 -1
  96. package/dist/auth/index.js.map +1 -1
  97. package/dist/cli/commands/init.d.ts.map +1 -1
  98. package/dist/cli/commands/init.js +12 -6
  99. package/dist/cli/commands/init.js.map +1 -1
  100. package/dist/cli/commands/run.d.ts.map +1 -1
  101. package/dist/cli/commands/run.js +13 -10
  102. package/dist/cli/commands/run.js.map +1 -1
  103. package/dist/cli/commands/setup.d.ts.map +1 -1
  104. package/dist/cli/commands/setup.js +22 -27
  105. package/dist/cli/commands/setup.js.map +1 -1
  106. package/dist/cli/commands/start.d.ts.map +1 -1
  107. package/dist/cli/commands/start.js +145 -16
  108. package/dist/cli/commands/start.js.map +1 -1
  109. package/dist/cli/commands/status.d.ts.map +1 -1
  110. package/dist/cli/commands/status.js +48 -29
  111. package/dist/cli/commands/status.js.map +1 -1
  112. package/dist/cli/commands/stop.d.ts +5 -0
  113. package/dist/cli/commands/stop.d.ts.map +1 -1
  114. package/dist/cli/commands/stop.js +220 -18
  115. package/dist/cli/commands/stop.js.map +1 -1
  116. package/dist/cli/config/types.d.ts +6 -0
  117. package/dist/cli/config/types.d.ts.map +1 -1
  118. package/dist/cli/config/types.js.map +1 -1
  119. package/dist/cli/runtime/agent-loop-init.d.ts +2 -0
  120. package/dist/cli/runtime/agent-loop-init.d.ts.map +1 -1
  121. package/dist/cli/runtime/agent-loop-init.js +3 -4
  122. package/dist/cli/runtime/agent-loop-init.js.map +1 -1
  123. package/dist/cli/runtime/api-server-init.d.ts +5 -2
  124. package/dist/cli/runtime/api-server-init.d.ts.map +1 -1
  125. package/dist/cli/runtime/api-server-init.js +4 -1
  126. package/dist/cli/runtime/api-server-init.js.map +1 -1
  127. package/dist/cli/runtime/connector-init.d.ts +12 -4
  128. package/dist/cli/runtime/connector-init.d.ts.map +1 -1
  129. package/dist/cli/runtime/connector-init.js +56 -48
  130. package/dist/cli/runtime/connector-init.js.map +1 -1
  131. package/dist/cli/runtime/envelope-bootstrap.d.ts +16 -0
  132. package/dist/cli/runtime/envelope-bootstrap.d.ts.map +1 -0
  133. package/dist/cli/runtime/envelope-bootstrap.js +39 -0
  134. package/dist/cli/runtime/envelope-bootstrap.js.map +1 -0
  135. package/dist/cli/runtime/memory-agent-init.d.ts.map +1 -1
  136. package/dist/cli/runtime/memory-agent-init.js +4 -1
  137. package/dist/cli/runtime/memory-agent-init.js.map +1 -1
  138. package/dist/connectors/framework/polling-scheduler.d.ts +3 -1
  139. package/dist/connectors/framework/polling-scheduler.d.ts.map +1 -1
  140. package/dist/connectors/framework/polling-scheduler.js +6 -1
  141. package/dist/connectors/framework/polling-scheduler.js.map +1 -1
  142. package/dist/connectors/framework/raw-store.d.ts +29 -0
  143. package/dist/connectors/framework/raw-store.d.ts.map +1 -1
  144. package/dist/connectors/framework/raw-store.js +154 -4
  145. package/dist/connectors/framework/raw-store.js.map +1 -1
  146. package/dist/connectors/framework/types.d.ts +6 -0
  147. package/dist/connectors/framework/types.d.ts.map +1 -1
  148. package/dist/connectors/kagemusha/index.d.ts.map +1 -1
  149. package/dist/connectors/kagemusha/index.js +4 -0
  150. package/dist/connectors/kagemusha/index.js.map +1 -1
  151. package/dist/db/agent-store.d.ts +29 -1
  152. package/dist/db/agent-store.d.ts.map +1 -1
  153. package/dist/db/agent-store.js +89 -6
  154. package/dist/db/agent-store.js.map +1 -1
  155. package/dist/db/migrations/agent-activity-envelope-hash.d.ts +3 -0
  156. package/dist/db/migrations/agent-activity-envelope-hash.d.ts.map +1 -0
  157. package/dist/db/migrations/agent-activity-envelope-hash.js +29 -0
  158. package/dist/db/migrations/agent-activity-envelope-hash.js.map +1 -0
  159. package/dist/db/migrations/agent-activity-gateway-call-id.d.ts +3 -0
  160. package/dist/db/migrations/agent-activity-gateway-call-id.d.ts.map +1 -0
  161. package/dist/db/migrations/agent-activity-gateway-call-id.js +17 -0
  162. package/dist/db/migrations/agent-activity-gateway-call-id.js.map +1 -0
  163. package/dist/db/migrations/agent-store-tables.d.ts.map +1 -1
  164. package/dist/db/migrations/agent-store-tables.js +5 -0
  165. package/dist/db/migrations/agent-store-tables.js.map +1 -1
  166. package/dist/db/migrations/envelope-tables.d.ts +3 -0
  167. package/dist/db/migrations/envelope-tables.d.ts.map +1 -0
  168. package/dist/db/migrations/envelope-tables.js +38 -0
  169. package/dist/db/migrations/envelope-tables.js.map +1 -0
  170. package/dist/envelope/authority.d.ts +15 -0
  171. package/dist/envelope/authority.d.ts.map +1 -0
  172. package/dist/envelope/authority.js +95 -0
  173. package/dist/envelope/authority.js.map +1 -0
  174. package/dist/envelope/canonical.d.ts +14 -0
  175. package/dist/envelope/canonical.d.ts.map +1 -0
  176. package/dist/envelope/canonical.js +68 -0
  177. package/dist/envelope/canonical.js.map +1 -0
  178. package/dist/envelope/enforcer.d.ts +15 -0
  179. package/dist/envelope/enforcer.d.ts.map +1 -0
  180. package/dist/envelope/enforcer.js +177 -0
  181. package/dist/envelope/enforcer.js.map +1 -0
  182. package/dist/envelope/expiry.d.ts +2 -0
  183. package/dist/envelope/expiry.d.ts.map +1 -0
  184. package/dist/envelope/expiry.js +15 -0
  185. package/dist/envelope/expiry.js.map +1 -0
  186. package/dist/envelope/index.d.ts +10 -0
  187. package/dist/envelope/index.d.ts.map +1 -0
  188. package/dist/envelope/index.js +26 -0
  189. package/dist/envelope/index.js.map +1 -0
  190. package/dist/envelope/key-provider.d.ts +6 -0
  191. package/dist/envelope/key-provider.d.ts.map +1 -0
  192. package/dist/envelope/key-provider.js +51 -0
  193. package/dist/envelope/key-provider.js.map +1 -0
  194. package/dist/envelope/reactive-config.d.ts +24 -0
  195. package/dist/envelope/reactive-config.d.ts.map +1 -0
  196. package/dist/envelope/reactive-config.js +154 -0
  197. package/dist/envelope/reactive-config.js.map +1 -0
  198. package/dist/envelope/signature.d.ts +16 -0
  199. package/dist/envelope/signature.d.ts.map +1 -0
  200. package/dist/envelope/signature.js +82 -0
  201. package/dist/envelope/signature.js.map +1 -0
  202. package/dist/envelope/store.d.ts +16 -0
  203. package/dist/envelope/store.d.ts.map +1 -0
  204. package/dist/envelope/store.js +118 -0
  205. package/dist/envelope/store.js.map +1 -0
  206. package/dist/envelope/subset.d.ts +9 -0
  207. package/dist/envelope/subset.d.ts.map +1 -0
  208. package/dist/envelope/subset.js +67 -0
  209. package/dist/envelope/subset.js.map +1 -0
  210. package/dist/envelope/types.d.ts +60 -0
  211. package/dist/envelope/types.d.ts.map +1 -0
  212. package/dist/envelope/types.js +9 -0
  213. package/dist/envelope/types.js.map +1 -0
  214. package/dist/gateways/message-router.d.ts +17 -29
  215. package/dist/gateways/message-router.d.ts.map +1 -1
  216. package/dist/gateways/message-router.js +97 -41
  217. package/dist/gateways/message-router.js.map +1 -1
  218. package/dist/memory/audit-task-queue.d.ts +1 -0
  219. package/dist/memory/audit-task-queue.d.ts.map +1 -1
  220. package/dist/memory/audit-task-queue.js.map +1 -1
  221. package/dist/memory/history-extractor.d.ts +24 -0
  222. package/dist/memory/history-extractor.d.ts.map +1 -1
  223. package/dist/memory/history-extractor.js +93 -1
  224. package/dist/memory/history-extractor.js.map +1 -1
  225. package/dist/multi-agent/agent-process-manager.d.ts.map +1 -1
  226. package/dist/multi-agent/agent-process-manager.js +4 -4
  227. package/dist/multi-agent/agent-process-manager.js.map +1 -1
  228. package/dist/multi-agent/swarm/swarm-mama-adapter.d.ts +33 -2
  229. package/dist/multi-agent/swarm/swarm-mama-adapter.d.ts.map +1 -1
  230. package/dist/multi-agent/swarm/swarm-mama-adapter.js +7 -8
  231. package/dist/multi-agent/swarm/swarm-mama-adapter.js.map +1 -1
  232. package/package.json +2 -2
  233. package/public/viewer/js/modules/entity-audit.js +106 -0
  234. package/public/viewer/js/modules/entity-review.js +66 -0
  235. package/public/viewer/src/modules/entity-audit.ts +154 -0
  236. package/public/viewer/src/modules/entity-review.ts +175 -0
  237. package/scripts/generate-gateway-tools.ts +2 -1
  238. package/scripts/postinstall.js +58 -9
  239. package/templates/entity-audit-fixtures/cross-language-aliases.json +28 -0
  240. package/templates/entity-audit-fixtures/gold-canonical-identities.json +46 -0
package/CHANGELOG.md CHANGED
@@ -7,6 +7,61 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.20.0] - 2026-05-01
11
+
12
+ ### Added
13
+
14
+ - **Reactive envelope runtime** — Standalone now issues and stores signed gateway envelopes, exposes
15
+ public health separately from authenticated envelope status, and audits scope mismatches through
16
+ `agent_activity`
17
+ - **Worker evidence APIs** — Added authenticated memory provenance, raw search, agent situation,
18
+ and agent graph/entity API handlers so workers can retrieve bounded evidence without direct DB
19
+ access
20
+ - **Envelope-aware gateway tooling** — Code-Act, gateway execution, internal agent-loop calls, and
21
+ model/tool trace paths now propagate envelope context for trusted provenance
22
+ - **Strict `mama_search` controls** — Gateway, MCP, Code-Act, ToolRegistry, and generated tool docs
23
+ now expose `scopes`, `strict`, `strictness`, `threshold`, `disableRecency`, `includeRelated`,
24
+ `topicPrefix`, `minLexicalSupport`, and `diagnostics`
25
+ - **Persistent process cleanup settings** — `timeouts.persistent_process_idle_ms`,
26
+ `timeouts.persistent_process_cleanup_ms`, and `timeouts.persistent_process_pending_tool_ms`
27
+ let operators tune how aggressively idle CLI processes are reclaimed
28
+
29
+ ### Changed
30
+
31
+ - **Gateway executor architecture** — Delegation execution and gateway tool execution were split
32
+ into clearer modules, with ToolRegistry kept as the valid-tool source of truth for generated
33
+ prompts and executor validation
34
+ - **Connector raw stores** — Raw connector persistence now writes provenance and unified indexes so
35
+ worker APIs can query raw evidence consistently
36
+ - **Envelope-aware memory search** — `mama_search` now defaults to effective envelope scopes and
37
+ rejects caller scopes outside the active envelope before searching
38
+ - **Search diagnostics preservation** — Standalone search result types and handler responses now
39
+ keep `diagnostics`, `retrieval_diagnostics`, and `contributing_leaf_diagnostics` instead of
40
+ dropping them at API boundaries
41
+
42
+ ### Fixed
43
+
44
+ - **Envelope hardening** — Reactive envelope startup, internal tool contexts, scope mismatch
45
+ logging, authenticated status reporting, worker graph/entity visibility, and graph API internal
46
+ error responses now have review-driven regression coverage
47
+ - **Scoped recent-list search** — No-query `mama_search` now passes scopes into recent decision
48
+ listing instead of returning global recent decisions
49
+ - **Long-lived Claude process buildup** — Persistent CLI processes are now reclaimed after idle
50
+ timeouts while active tool-result loops keep a bounded lease; `mama stop` also avoids unsafe
51
+ broad kills and handles large `ps` output safely
52
+
53
+ ## [0.19.1] - 2026-04-20
54
+
55
+ ### Fixed
56
+
57
+ - **Claude Code auth detection** — install, init, setup, run, and status flows now prefer `claude auth status` when detecting whether Claude Code is logged in, avoiding false "auth missing" warnings on newer CLI installs that do not persist `~/.claude/.credentials.json`
58
+ - **Legacy auth fallback preserved** — older environments that still rely on `~/.claude/.credentials.json` continue to work as a fallback instead of breaking setup or status checks
59
+
60
+ ### Changed
61
+
62
+ - **Postinstall guidance** — postinstall now distinguishes between "Claude CLI missing" and "Claude CLI installed but logged out", and shows `claude auth login` when re-authentication is the real fix
63
+ - **Operator docs alignment** — standalone setup/troubleshooting/commands docs now describe the shipped Claude Code login flow and generated artifact expectations
64
+
10
65
  ## [0.10.2] - 2026-02-22
11
66
 
12
67
  ### Added
package/README.md CHANGED
@@ -1,22 +1,28 @@
1
1
  # @jungjaehoon/mama-os
2
2
 
3
- > Your scattered knowledge, organized by AI agents that never sleep.
3
+ > Bounded, provenance-backed working context for AI agents running on your machine.
4
4
 
5
5
  ## The Problem
6
6
 
7
7
  Your knowledge is everywhere — Slack threads, email chains, code reviews, meeting notes, spreadsheets, Telegram messages. No human can track all of it. Important decisions get buried. Context gets lost between tools. When you need to make a decision, the information that would help is scattered across ten different apps and three months of history.
8
8
 
9
- This isn't a memory problem. It's an intelligence problem. You don't just need to *store* information — you need something that reads everything, connects the dots, identifies what matters, and tells you what you're missing.
9
+ This isn't just a memory problem. It's a bounded context problem. You don't just need to
10
+ _store_ information — you need something that reads everything, connects the dots, identifies what
11
+ matters, proves where it came from, and keeps agents inside the scope they were given.
10
12
 
11
13
  ## What MAMA OS Does
12
14
 
13
- MAMA OS is a local AI runtime that connects to your apps, reads everything continuously, and turns scattered records into organized knowledge.
15
+ MAMA OS is a local AI runtime that connects to your apps, reads continuously, and turns scattered
16
+ records into scoped, auditable context for agents and humans.
14
17
 
15
18
  **What the agents actually do:**
16
19
 
17
20
  - **Identify what matters** — Out of thousands of daily messages, surface the decisions, deadlines, and changes that affect your work
18
21
  - **Connect across sources** — A Slack conversation + a Trello card + an email attachment about the same project are linked automatically
19
22
  - **Track decision evolution** — Not just what was decided, but what it replaced, what it builds on, and what it contradicts
23
+ - **Operate inside envelopes** — Gateway and worker calls carry signed scope boundaries and audit rows
24
+ - **Preserve provenance** — Memory writes can point back to source refs, model runs, tool traces, and envelope hashes
25
+ - **Search with evidence** — Strict memory search can reject vector-only noise and show which lexical, entity, scope, or graph signals confirmed a result
20
26
  - **Compile actionable knowledge** — Raw conversations become structured wiki pages with priorities, gaps, and suggested next steps
21
27
  - **Brief you proactively** — When you start working, relevant context from all sources is already there — you didn't ask for it
22
28
 
@@ -28,7 +34,8 @@ With MAMA: Agents already read everything. You get a briefing with
28
34
  what changed, what's at risk, and what needs your decision.
29
35
  ```
30
36
 
31
- **This is what AI agents can do that humans can't** — read every channel, every thread, every document, every day, and never miss a connection.
37
+ **This is what local AI agents should do** — read every channel, every thread, every document, every
38
+ day, then explain exactly which evidence they used and which permission boundary they were inside.
32
39
 
33
40
  - **Private by design** — All data stays on your device. Nothing leaves your machine.
34
41
  - **AI-independent** — Works with Claude, Codex, or any future backend. Your memory outlives any AI provider.
@@ -49,6 +56,10 @@ mama start # That's it. MAMA uses your existing CLI authentication.
49
56
  MAMA OS has full system access — so security is not optional, it's foundational.
50
57
 
51
58
  - **Local-only by default** — Binds to localhost. External access requires explicit tunnel setup with authentication (Cloudflare Zero Trust).
59
+ - **Signed runtime envelopes** — Gateway and worker tool calls carry verifiable scope, expiry, and
60
+ actor context before irreversible side effects are allowed.
61
+ - **Provenance ledger** — Memory writes, raw refs, model runs, and tool traces can be audited after
62
+ the fact without exposing prompt bodies or hidden connector payloads.
52
63
  - **5-layer prompt injection defense** — Output sanitization, channel trust boundaries, silent mode for unknown sources, bulk extraction limits. Built from a real incident, not theory.
53
64
  - **Intrusion detection** — Honeypot traps for scanner probes (`.git`, `.env`, `wp-login.php`), per-IP suspicion scoring, automatic tarpit delays, and IP deny-listing when thresholds are exceeded.
54
65
  - **Agent permission tiers** — Tier 1 (full access), Tier 2 (read-only), Tier 3 (scoped read-only). Each agent only gets the tools it needs.
@@ -62,7 +73,7 @@ See the full [Security Guide](../../docs/guides/security.md) for Cloudflare Zero
62
73
 
63
74
  ```bash
64
75
  # 1. Authenticate a backend CLI (one-time)
65
- claude # or: codex login
76
+ claude auth login # or: codex login
66
77
 
67
78
  # 2. Install and start
68
79
  npx @jungjaehoon/mama-os init
@@ -72,7 +83,7 @@ mama start
72
83
  open http://localhost:3847
73
84
  ```
74
85
 
75
- **Prerequisites:** Node.js >= 18, one authenticated backend CLI (Claude or Codex), 500MB disk space.
86
+ **Prerequisites:** Node.js >= 22.13.0, one authenticated backend CLI (Claude or Codex), 500MB disk space.
76
87
 
77
88
  ## Connectors (15)
78
89
 
@@ -83,22 +94,22 @@ mama connector add slack # Activate + auth guide
83
94
  mama connector list # Status of all connectors
84
95
  ```
85
96
 
86
- | Connector | Prerequisites | Config |
87
- |-----------|--------------|--------|
88
- | **Slack** | Bot Token (api.slack.com → OAuth scopes) | `bot_token`, `app_token` |
89
- | **Discord** | Bot Token (discord.com/developers → MESSAGE CONTENT INTENT) | `token`, `default_channel_id` |
90
- | **Telegram** | Bot Token (@BotFather) | `token`, `allowed_chat_ids` |
91
- | **Chatwork** | API Token (account settings) | `api_token`, `room_ids` |
92
- | **iMessage** | macOS only (reads local chat.db) | No config needed |
93
- | **Gmail** | [gws CLI](https://github.com/nicholasgasior/gws) installed + Google OAuth | `gws` in PATH |
94
- | **Calendar** | gws CLI installed + Google OAuth | `gws` in PATH |
95
- | **Drive** | gws CLI installed + Google OAuth | `gws` in PATH |
96
- | **Sheets** | gws CLI installed + Google OAuth | `gws` in PATH, `spreadsheet_ids` |
97
- | **Notion** | Integration Token (notion.so/my-integrations) | `api_token`, `database_ids` |
98
- | **Obsidian** | [Obsidian](https://obsidian.md) installed + [Obsidian Terminal](https://github.com/polyipseity/obsidian-terminal) plugin enabled | `vault_path` in config.yaml |
99
- | **Trello** | API Key + Token (trello.com/app-key) | `api_key`, `token`, `board_ids` |
100
- | **Kagemusha** | Kagemusha running locally | Reads `kagemusha.db` directly |
101
- | **Claude Code** | Claude Code plugin installed | Automatic via hooks |
97
+ | Connector | Prerequisites | Config |
98
+ | --------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------- |
99
+ | **Slack** | Bot Token (api.slack.com → OAuth scopes) | `bot_token`, `app_token` |
100
+ | **Discord** | Bot Token (discord.com/developers → MESSAGE CONTENT INTENT) | `token`, `default_channel_id` |
101
+ | **Telegram** | Bot Token (@BotFather) | `token`, `allowed_chat_ids` |
102
+ | **Chatwork** | API Token (account settings) | `api_token`, `room_ids` |
103
+ | **iMessage** | macOS only (reads local chat.db) | No config needed |
104
+ | **Gmail** | [gws CLI](https://github.com/nicholasgasior/gws) installed + Google OAuth | `gws` in PATH |
105
+ | **Calendar** | gws CLI installed + Google OAuth | `gws` in PATH |
106
+ | **Drive** | gws CLI installed + Google OAuth | `gws` in PATH |
107
+ | **Sheets** | gws CLI installed + Google OAuth | `gws` in PATH, `spreadsheet_ids` |
108
+ | **Notion** | Integration Token (notion.so/my-integrations) | `api_token`, `database_ids` |
109
+ | **Obsidian** | [Obsidian](https://obsidian.md) installed + [Obsidian Terminal](https://github.com/polyipseity/obsidian-terminal) plugin enabled | `vault_path` in config.yaml |
110
+ | **Trello** | API Key + Token (trello.com/app-key) | `api_key`, `token`, `board_ids` |
111
+ | **Kagemusha** | Kagemusha running locally | Reads `kagemusha.db` directly |
112
+ | **Claude Code** | Claude Code plugin installed | Automatic via hooks |
102
113
 
103
114
  **Google Workspace connectors** (Gmail, Calendar, Drive, Sheets) require the [gws CLI](https://github.com/nicholasgasior/gws) — a Google Workspace command-line tool. Install it, run `gws auth` once for OAuth, then MAMA polls via CLI.
104
115
 
@@ -108,12 +119,12 @@ Each connector classifies its source (truth / hub / spoke / reference) for the 3
108
119
 
109
120
  MAMA OS runs specialized agents for knowledge management — not coding (that's what Claude Code does natively).
110
121
 
111
- | Agent | Role | Requires |
112
- |-------|------|----------|
113
- | **Conductor** | Orchestrates other agents, handles user chat | — |
114
- | **Dashboard Agent** | Generates project briefings from connected sources | — |
115
- | **Wiki Agent** | Compiles knowledge into Obsidian vault | [Obsidian](https://obsidian.md) + [Terminal plugin](https://github.com/polyipseity/obsidian-terminal) |
116
- | **Memory Agent** | Extracts decisions from conversations automatically | — |
122
+ | Agent | Role | Requires |
123
+ | ------------------- | --------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
124
+ | **Conductor** | Orchestrates other agents, handles user chat | — |
125
+ | **Dashboard Agent** | Generates project briefings from connected sources | — |
126
+ | **Wiki Agent** | Compiles knowledge into Obsidian vault | [Obsidian](https://obsidian.md) + [Terminal plugin](https://github.com/polyipseity/obsidian-terminal) |
127
+ | **Memory Agent** | Extracts decisions from conversations automatically | — |
117
128
 
118
129
  Agents delegate via `delegate()` with skill injection and automatic retry. Configure in `~/.mama/config.yaml`.
119
130
 
@@ -121,14 +132,14 @@ Agents delegate via `delegate()` with skill injection and automatic retry. Confi
121
132
 
122
133
  Web UI at `http://localhost:3847`. PWA-enabled for mobile (add to home screen).
123
134
 
124
- | Tab | What it shows |
125
- |-----|--------------|
126
- | **Dashboard** | Agent activity, memory stats, system health |
127
- | **Feed** | Real-time stream from all connected sources |
128
- | **Wiki** | Knowledge base (syncs with Obsidian vault) |
129
- | **Memory** | Interactive reasoning graph (1000+ nodes), search, export |
130
- | **Logs** | Daemon logs with filtering, pinning, stats, WebSocket mode |
131
- | **Settings** | Connectors, gateways, agents, cron, token budget |
135
+ | Tab | What it shows |
136
+ | ------------- | ---------------------------------------------------------- |
137
+ | **Dashboard** | Agent activity, memory stats, system health |
138
+ | **Feed** | Real-time stream from all connected sources |
139
+ | **Wiki** | Knowledge base (syncs with Obsidian vault) |
140
+ | **Memory** | Interactive reasoning graph (1000+ nodes), search, export |
141
+ | **Logs** | Daemon logs with filtering, pinning, stats, WebSocket mode |
142
+ | **Settings** | Connectors, gateways, agents, cron, token budget |
132
143
 
133
144
  Floating chat panel on every tab — voice input, TTS, slash commands.
134
145
 
@@ -139,57 +150,66 @@ Run MAMA as a bot in Discord, Slack, Telegram, or Chatwork. Configure via `mama
139
150
  ## Architecture
140
151
 
141
152
  ```
142
- Connectors (15) Gateways (4)
143
- Slack, Gmail, Sheets... Discord, Slack, Telegram, Chatwork
144
- | |
145
- v v
146
- 3-Pass Extraction Multi-Agent System
147
- | |
148
- +--------+-------+------+
149
- |
150
- MAMA Core (mama-memory.db)
151
- Local SQLite + 1024-dim embeddings
152
- |
153
- +------+------+
154
- | |
155
- Viewer UI Claude Code Plugin
153
+ Connectors (15) Gateways (4)
154
+ Slack, Gmail, Sheets... Discord, Slack, Telegram, Chatwork
155
+ | |
156
+ v v
157
+ 3-Pass Extraction Reactive Runtime Envelopes
158
+ | scope, expiry, signature, audit
159
+ +------------+---------------+
160
+ |
161
+ MAMA Core (mama-memory.db)
162
+ memory, raw refs, model runs,
163
+ tool traces, twin edges, packets
164
+ |
165
+ +------+------+
166
+ | |
167
+ Viewer UI Claude Code Plugin / MCP
156
168
  ```
157
169
 
158
170
  ## CLI
159
171
 
160
- | Command | Description |
161
- |---------|-------------|
162
- | `mama init` | Initialize workspace |
163
- | `mama setup` | Interactive setup wizard |
164
- | `mama start` | Start daemon |
165
- | `mama stop` | Stop daemon |
166
- | `mama status` | Check status |
167
- | `mama connector <add\|remove\|list\|status>` | Manage connectors |
172
+ | Command | Description |
173
+ | -------------------------------------------- | ------------------------ |
174
+ | `mama init` | Initialize workspace |
175
+ | `mama setup` | Interactive setup wizard |
176
+ | `mama start` | Start daemon |
177
+ | `mama stop` | Stop daemon |
178
+ | `mama status` | Check status |
179
+ | `mama connector <add\|remove\|list\|status>` | Manage connectors |
168
180
 
169
181
  ## Configuration
170
182
 
171
183
  Main config: `~/.mama/config.yaml`
172
184
 
173
- | Variable | Default |
174
- |----------|---------|
175
- | `MAMA_DB_PATH` | `~/.mama/mama-memory.db` |
176
- | `MAMA_HTTP_PORT` | `3847` |
177
- | `MAMA_WORKSPACE` | `~/.mama/workspace` |
185
+ | Variable | Default |
186
+ | ---------------- | ------------------------ |
187
+ | `MAMA_DB_PATH` | `~/.mama/mama-memory.db` |
188
+ | `MAMA_HTTP_PORT` | `3847` |
189
+ | `MAMA_WORKSPACE` | `~/.mama/workspace` |
190
+
191
+ Timeout tuning lives under `timeouts` in `config.yaml`. The persistent CLI process pool supports:
192
+
193
+ | Option | Default | Purpose |
194
+ | ------------------------------------ | --------------------------- | ------------------------------------------- |
195
+ | `persistent_process_idle_ms` | `session_ms` | Reclaim idle Claude/Codex CLI processes |
196
+ | `persistent_process_cleanup_ms` | `session_cleanup_ms` | How often idle-process cleanup runs |
197
+ | `persistent_process_pending_tool_ms` | `max(4 * idle, 30 minutes)` | Max wait for pending tool-result handshakes |
178
198
 
179
199
  ## Related Packages
180
200
 
181
- | Package | Purpose |
182
- |---------|---------|
183
- | **@jungjaehoon/mama-os** | Always-on AI runtime (this package) |
184
- | **@jungjaehoon/mama-server** | MCP server for Claude Desktop |
185
- | **@jungjaehoon/mama-core** | Shared memory engine |
201
+ | Package | Purpose |
202
+ | ---------------------------- | ----------------------------------- |
203
+ | **@jungjaehoon/mama-os** | Always-on AI runtime (this package) |
204
+ | **@jungjaehoon/mama-server** | MCP server for Claude Desktop |
205
+ | **@jungjaehoon/mama-core** | Shared memory engine |
186
206
 
187
207
  ## Development
188
208
 
189
209
  ```bash
190
210
  git clone https://github.com/jungjaehoon-lifegamez/MAMA.git
191
211
  cd MAMA && pnpm install && pnpm build
192
- pnpm test # 2800+ tests across all packages
212
+ pnpm test # 3000+ tests across all packages
193
213
  ```
194
214
 
195
215
  ## Links
@@ -202,4 +222,4 @@ MIT
202
222
 
203
223
  ---
204
224
 
205
- **Last Updated:** 2026-04-10
225
+ **Last Updated:** 2026-04-30
@@ -10,7 +10,7 @@
10
10
  * - Loops until stop_reason is "end_turn" or max turns reached
11
11
  */
12
12
  import type { OAuthManager } from '../auth/index.js';
13
- import type { ContentBlock, ToolDefinition, AgentLoopOptions, AgentLoopResult, ClaudeClientOptions, GatewayToolExecutorOptions, AgentContext } from './types.js';
13
+ import type { ContentBlock, ToolDefinition, AgentLoopOptions, AgentLoopResult, ClaudeClientOptions, GatewayToolExecutorOptions, AgentContext, GatewayToolExecutionContext } from './types.js';
14
14
  /**
15
15
  * Load composed system prompt with persona layers + CLAUDE.md + optional context
16
16
  * Tries to load persona files from ~/.mama/ in order:
@@ -32,6 +32,8 @@ import type { ContentBlock, ToolDefinition, AgentLoopOptions, AgentLoopResult, C
32
32
  export declare function loadBackendAgentsMd(backend?: string, verbose?: boolean): string;
33
33
  export declare function loadComposedSystemPrompt(verbose?: boolean, context?: AgentContext): string;
34
34
  export declare function getGatewayToolsPrompt(disallowed?: string[]): string;
35
+ export type AgentToolExecutionContext = GatewayToolExecutionContext;
36
+ export declare function buildAgentToolExecutionContext(options?: AgentLoopOptions): AgentToolExecutionContext | null;
35
37
  export declare class AgentLoop {
36
38
  private readonly agent;
37
39
  private readonly persistentCLI;
@@ -172,6 +174,10 @@ export declare class AgentLoop {
172
174
  * Internal implementation of runWithContent (without lane queueing)
173
175
  */
174
176
  private runWithContentInternal;
177
+ private shouldBeginModelRun;
178
+ private withBackgroundTaskRegistry;
179
+ private drainBackgroundTasks;
180
+ private buildModelRunInput;
175
181
  /**
176
182
  * Execute tools from response content blocks
177
183
  */
@@ -1 +1 @@
1
- {"version":3,"file":"agent-loop.d.ts","sourceRoot":"","sources":["../../src/agent/agent-loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-loop.d.ts","sourceRoot":"","sources":["../../src/agent/agent-loop.ts"],"names":[],"mappings":"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"}