@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.
- package/CHANGELOG.md +55 -0
- package/README.md +90 -70
- package/dist/agent/agent-loop.d.ts +7 -1
- package/dist/agent/agent-loop.d.ts.map +1 -1
- package/dist/agent/agent-loop.js +150 -20
- package/dist/agent/agent-loop.js.map +1 -1
- package/dist/agent/code-act/host-bridge.d.ts +3 -1
- package/dist/agent/code-act/host-bridge.d.ts.map +1 -1
- package/dist/agent/code-act/host-bridge.js +28 -4
- package/dist/agent/code-act/host-bridge.js.map +1 -1
- package/dist/agent/delegation-executor.d.ts +49 -0
- package/dist/agent/delegation-executor.d.ts.map +1 -0
- package/dist/agent/delegation-executor.js +692 -0
- package/dist/agent/delegation-executor.js.map +1 -0
- package/dist/agent/gateway-tool-executor.d.ts +41 -14
- package/dist/agent/gateway-tool-executor.d.ts.map +1 -1
- package/dist/agent/gateway-tool-executor.js +718 -685
- package/dist/agent/gateway-tool-executor.js.map +1 -1
- package/dist/agent/gateway-tools.md +3 -1
- package/dist/agent/mama-tool-handlers.d.ts +2 -2
- package/dist/agent/mama-tool-handlers.d.ts.map +1 -1
- package/dist/agent/mama-tool-handlers.js +60 -10
- package/dist/agent/mama-tool-handlers.js.map +1 -1
- package/dist/agent/persistent-cli-process.d.ts +35 -0
- package/dist/agent/persistent-cli-process.d.ts.map +1 -1
- package/dist/agent/persistent-cli-process.js +193 -16
- package/dist/agent/persistent-cli-process.js.map +1 -1
- package/dist/agent/post-tool-handler.d.ts +3 -2
- package/dist/agent/post-tool-handler.d.ts.map +1 -1
- package/dist/agent/post-tool-handler.js +22 -11
- package/dist/agent/post-tool-handler.js.map +1 -1
- package/dist/agent/pre-compact-handler.d.ts +3 -2
- package/dist/agent/pre-compact-handler.d.ts.map +1 -1
- package/dist/agent/pre-compact-handler.js +8 -12
- package/dist/agent/pre-compact-handler.js.map +1 -1
- package/dist/agent/tool-registry.d.ts.map +1 -1
- package/dist/agent/tool-registry.js +1 -1
- package/dist/agent/tool-registry.js.map +1 -1
- package/dist/agent/types.d.ts +125 -1
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/api/agent-graph-handler.d.ts +9 -0
- package/dist/api/agent-graph-handler.d.ts.map +1 -0
- package/dist/api/agent-graph-handler.js +543 -0
- package/dist/api/agent-graph-handler.js.map +1 -0
- package/dist/api/agent-raw-handler.d.ts +56 -0
- package/dist/api/agent-raw-handler.d.ts.map +1 -0
- package/dist/api/agent-raw-handler.js +248 -0
- package/dist/api/agent-raw-handler.js.map +1 -0
- package/dist/api/agent-situation-handler.d.ts +14 -0
- package/dist/api/agent-situation-handler.d.ts.map +1 -0
- package/dist/api/agent-situation-handler.js +383 -0
- package/dist/api/agent-situation-handler.js.map +1 -0
- package/dist/api/auth-middleware.d.ts +1 -0
- package/dist/api/auth-middleware.d.ts.map +1 -1
- package/dist/api/auth-middleware.js +30 -0
- package/dist/api/auth-middleware.js.map +1 -1
- package/dist/api/entity-audit-handler.d.ts +13 -0
- package/dist/api/entity-audit-handler.d.ts.map +1 -0
- package/dist/api/entity-audit-handler.js +124 -0
- package/dist/api/entity-audit-handler.js.map +1 -0
- package/dist/api/entity-audit-queue.d.ts +74 -0
- package/dist/api/entity-audit-queue.d.ts.map +1 -0
- package/dist/api/entity-audit-queue.js +123 -0
- package/dist/api/entity-audit-queue.js.map +1 -0
- package/dist/api/entity-audit-runner.d.ts +9 -0
- package/dist/api/entity-audit-runner.d.ts.map +1 -0
- package/dist/api/entity-audit-runner.js +240 -0
- package/dist/api/entity-audit-runner.js.map +1 -0
- package/dist/api/entity-review-handler.d.ts +18 -0
- package/dist/api/entity-review-handler.d.ts.map +1 -0
- package/dist/api/entity-review-handler.js +521 -0
- package/dist/api/entity-review-handler.js.map +1 -0
- package/dist/api/graph-api.d.ts.map +1 -1
- package/dist/api/graph-api.js +210 -0
- package/dist/api/graph-api.js.map +1 -1
- package/dist/api/index.d.ts +20 -0
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +49 -2
- package/dist/api/index.js.map +1 -1
- package/dist/api/memory-provenance-handler.d.ts +3 -0
- package/dist/api/memory-provenance-handler.d.ts.map +1 -0
- package/dist/api/memory-provenance-handler.js +120 -0
- package/dist/api/memory-provenance-handler.js.map +1 -0
- package/dist/api/worker-envelope.d.ts +26 -0
- package/dist/api/worker-envelope.d.ts.map +1 -0
- package/dist/api/worker-envelope.js +176 -0
- package/dist/api/worker-envelope.js.map +1 -0
- package/dist/auth/claude-code-auth.d.ts +12 -0
- package/dist/auth/claude-code-auth.d.ts.map +1 -0
- package/dist/auth/claude-code-auth.js +85 -0
- package/dist/auth/claude-code-auth.js.map +1 -0
- package/dist/auth/index.d.ts +2 -0
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +3 -1
- package/dist/auth/index.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +12 -6
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +13 -10
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/setup.d.ts.map +1 -1
- package/dist/cli/commands/setup.js +22 -27
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +145 -16
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +48 -29
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/stop.d.ts +5 -0
- package/dist/cli/commands/stop.d.ts.map +1 -1
- package/dist/cli/commands/stop.js +220 -18
- package/dist/cli/commands/stop.js.map +1 -1
- package/dist/cli/config/types.d.ts +6 -0
- package/dist/cli/config/types.d.ts.map +1 -1
- package/dist/cli/config/types.js.map +1 -1
- package/dist/cli/runtime/agent-loop-init.d.ts +2 -0
- package/dist/cli/runtime/agent-loop-init.d.ts.map +1 -1
- package/dist/cli/runtime/agent-loop-init.js +3 -4
- package/dist/cli/runtime/agent-loop-init.js.map +1 -1
- package/dist/cli/runtime/api-server-init.d.ts +5 -2
- package/dist/cli/runtime/api-server-init.d.ts.map +1 -1
- package/dist/cli/runtime/api-server-init.js +4 -1
- package/dist/cli/runtime/api-server-init.js.map +1 -1
- package/dist/cli/runtime/connector-init.d.ts +12 -4
- package/dist/cli/runtime/connector-init.d.ts.map +1 -1
- package/dist/cli/runtime/connector-init.js +56 -48
- package/dist/cli/runtime/connector-init.js.map +1 -1
- package/dist/cli/runtime/envelope-bootstrap.d.ts +16 -0
- package/dist/cli/runtime/envelope-bootstrap.d.ts.map +1 -0
- package/dist/cli/runtime/envelope-bootstrap.js +39 -0
- package/dist/cli/runtime/envelope-bootstrap.js.map +1 -0
- package/dist/cli/runtime/memory-agent-init.d.ts.map +1 -1
- package/dist/cli/runtime/memory-agent-init.js +4 -1
- package/dist/cli/runtime/memory-agent-init.js.map +1 -1
- package/dist/connectors/framework/polling-scheduler.d.ts +3 -1
- package/dist/connectors/framework/polling-scheduler.d.ts.map +1 -1
- package/dist/connectors/framework/polling-scheduler.js +6 -1
- package/dist/connectors/framework/polling-scheduler.js.map +1 -1
- package/dist/connectors/framework/raw-store.d.ts +29 -0
- package/dist/connectors/framework/raw-store.d.ts.map +1 -1
- package/dist/connectors/framework/raw-store.js +154 -4
- package/dist/connectors/framework/raw-store.js.map +1 -1
- package/dist/connectors/framework/types.d.ts +6 -0
- package/dist/connectors/framework/types.d.ts.map +1 -1
- package/dist/connectors/kagemusha/index.d.ts.map +1 -1
- package/dist/connectors/kagemusha/index.js +4 -0
- package/dist/connectors/kagemusha/index.js.map +1 -1
- package/dist/db/agent-store.d.ts +29 -1
- package/dist/db/agent-store.d.ts.map +1 -1
- package/dist/db/agent-store.js +89 -6
- package/dist/db/agent-store.js.map +1 -1
- package/dist/db/migrations/agent-activity-envelope-hash.d.ts +3 -0
- package/dist/db/migrations/agent-activity-envelope-hash.d.ts.map +1 -0
- package/dist/db/migrations/agent-activity-envelope-hash.js +29 -0
- package/dist/db/migrations/agent-activity-envelope-hash.js.map +1 -0
- package/dist/db/migrations/agent-activity-gateway-call-id.d.ts +3 -0
- package/dist/db/migrations/agent-activity-gateway-call-id.d.ts.map +1 -0
- package/dist/db/migrations/agent-activity-gateway-call-id.js +17 -0
- package/dist/db/migrations/agent-activity-gateway-call-id.js.map +1 -0
- package/dist/db/migrations/agent-store-tables.d.ts.map +1 -1
- package/dist/db/migrations/agent-store-tables.js +5 -0
- package/dist/db/migrations/agent-store-tables.js.map +1 -1
- package/dist/db/migrations/envelope-tables.d.ts +3 -0
- package/dist/db/migrations/envelope-tables.d.ts.map +1 -0
- package/dist/db/migrations/envelope-tables.js +38 -0
- package/dist/db/migrations/envelope-tables.js.map +1 -0
- package/dist/envelope/authority.d.ts +15 -0
- package/dist/envelope/authority.d.ts.map +1 -0
- package/dist/envelope/authority.js +95 -0
- package/dist/envelope/authority.js.map +1 -0
- package/dist/envelope/canonical.d.ts +14 -0
- package/dist/envelope/canonical.d.ts.map +1 -0
- package/dist/envelope/canonical.js +68 -0
- package/dist/envelope/canonical.js.map +1 -0
- package/dist/envelope/enforcer.d.ts +15 -0
- package/dist/envelope/enforcer.d.ts.map +1 -0
- package/dist/envelope/enforcer.js +177 -0
- package/dist/envelope/enforcer.js.map +1 -0
- package/dist/envelope/expiry.d.ts +2 -0
- package/dist/envelope/expiry.d.ts.map +1 -0
- package/dist/envelope/expiry.js +15 -0
- package/dist/envelope/expiry.js.map +1 -0
- package/dist/envelope/index.d.ts +10 -0
- package/dist/envelope/index.d.ts.map +1 -0
- package/dist/envelope/index.js +26 -0
- package/dist/envelope/index.js.map +1 -0
- package/dist/envelope/key-provider.d.ts +6 -0
- package/dist/envelope/key-provider.d.ts.map +1 -0
- package/dist/envelope/key-provider.js +51 -0
- package/dist/envelope/key-provider.js.map +1 -0
- package/dist/envelope/reactive-config.d.ts +24 -0
- package/dist/envelope/reactive-config.d.ts.map +1 -0
- package/dist/envelope/reactive-config.js +154 -0
- package/dist/envelope/reactive-config.js.map +1 -0
- package/dist/envelope/signature.d.ts +16 -0
- package/dist/envelope/signature.d.ts.map +1 -0
- package/dist/envelope/signature.js +82 -0
- package/dist/envelope/signature.js.map +1 -0
- package/dist/envelope/store.d.ts +16 -0
- package/dist/envelope/store.d.ts.map +1 -0
- package/dist/envelope/store.js +118 -0
- package/dist/envelope/store.js.map +1 -0
- package/dist/envelope/subset.d.ts +9 -0
- package/dist/envelope/subset.d.ts.map +1 -0
- package/dist/envelope/subset.js +67 -0
- package/dist/envelope/subset.js.map +1 -0
- package/dist/envelope/types.d.ts +60 -0
- package/dist/envelope/types.d.ts.map +1 -0
- package/dist/envelope/types.js +9 -0
- package/dist/envelope/types.js.map +1 -0
- package/dist/gateways/message-router.d.ts +17 -29
- package/dist/gateways/message-router.d.ts.map +1 -1
- package/dist/gateways/message-router.js +97 -41
- package/dist/gateways/message-router.js.map +1 -1
- package/dist/memory/audit-task-queue.d.ts +1 -0
- package/dist/memory/audit-task-queue.d.ts.map +1 -1
- package/dist/memory/audit-task-queue.js.map +1 -1
- package/dist/memory/history-extractor.d.ts +24 -0
- package/dist/memory/history-extractor.d.ts.map +1 -1
- package/dist/memory/history-extractor.js +93 -1
- package/dist/memory/history-extractor.js.map +1 -1
- package/dist/multi-agent/agent-process-manager.d.ts.map +1 -1
- package/dist/multi-agent/agent-process-manager.js +4 -4
- package/dist/multi-agent/agent-process-manager.js.map +1 -1
- package/dist/multi-agent/swarm/swarm-mama-adapter.d.ts +33 -2
- package/dist/multi-agent/swarm/swarm-mama-adapter.d.ts.map +1 -1
- package/dist/multi-agent/swarm/swarm-mama-adapter.js +7 -8
- package/dist/multi-agent/swarm/swarm-mama-adapter.js.map +1 -1
- package/package.json +2 -2
- package/public/viewer/js/modules/entity-audit.js +106 -0
- package/public/viewer/js/modules/entity-review.js +66 -0
- package/public/viewer/src/modules/entity-audit.ts +154 -0
- package/public/viewer/src/modules/entity-review.ts +175 -0
- package/scripts/generate-gateway-tools.ts +2 -1
- package/scripts/postinstall.js +58 -9
- package/templates/entity-audit-fixtures/cross-language-aliases.json +28 -0
- 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
|
-
>
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 >=
|
|
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
|
|
87
|
-
|
|
88
|
-
| **Slack**
|
|
89
|
-
| **Discord**
|
|
90
|
-
| **Telegram**
|
|
91
|
-
| **Chatwork**
|
|
92
|
-
| **iMessage**
|
|
93
|
-
| **Gmail**
|
|
94
|
-
| **Calendar**
|
|
95
|
-
| **Drive**
|
|
96
|
-
| **Sheets**
|
|
97
|
-
| **Notion**
|
|
98
|
-
| **Obsidian**
|
|
99
|
-
| **Trello**
|
|
100
|
-
| **Kagemusha**
|
|
101
|
-
| **Claude Code** | Claude Code plugin installed
|
|
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
|
|
112
|
-
|
|
113
|
-
| **Conductor**
|
|
114
|
-
| **Dashboard Agent** | Generates project briefings from connected sources
|
|
115
|
-
| **Wiki Agent**
|
|
116
|
-
| **Memory Agent**
|
|
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
|
|
125
|
-
|
|
126
|
-
| **Dashboard** | Agent activity, memory stats, system health
|
|
127
|
-
| **Feed**
|
|
128
|
-
| **Wiki**
|
|
129
|
-
| **Memory**
|
|
130
|
-
| **Logs**
|
|
131
|
-
| **Settings**
|
|
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)
|
|
143
|
-
Slack, Gmail, Sheets...
|
|
144
|
-
|
|
|
145
|
-
v
|
|
146
|
-
3-Pass Extraction
|
|
147
|
-
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
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
|
|
161
|
-
|
|
162
|
-
| `mama init`
|
|
163
|
-
| `mama setup`
|
|
164
|
-
| `mama start`
|
|
165
|
-
| `mama stop`
|
|
166
|
-
| `mama 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
|
|
174
|
-
|
|
175
|
-
| `MAMA_DB_PATH`
|
|
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
|
|
182
|
-
|
|
183
|
-
| **@jungjaehoon/mama-os**
|
|
184
|
-
| **@jungjaehoon/mama-server** | MCP server for Claude Desktop
|
|
185
|
-
| **@jungjaehoon/mama-core**
|
|
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 #
|
|
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-
|
|
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":"AAAA;;;;;;;;;;GAUG;AAqBH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAIrD,OAAO,KAAK,EAEV,YAAY,EAIZ,cAAc,EACd,gBAAgB,EAChB,eAAe,EAIf,mBAAmB,EACnB,0BAA0B,
|
|
1
|
+
{"version":3,"file":"agent-loop.d.ts","sourceRoot":"","sources":["../../src/agent/agent-loop.ts"],"names":[],"mappings":"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"}
|