@jungjaehoon/mama-os 0.19.1 → 0.20.1
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 +91 -0
- package/README.md +40 -20
- package/dist/agent/agent-loop.d.ts +9 -2
- package/dist/agent/agent-loop.d.ts.map +1 -1
- package/dist/agent/agent-loop.js +211 -35
- package/dist/agent/agent-loop.js.map +1 -1
- package/dist/agent/claude-cli-wrapper.d.ts.map +1 -1
- package/dist/agent/claude-cli-wrapper.js +6 -2
- package/dist/agent/claude-cli-wrapper.js.map +1 -1
- package/dist/agent/cli-arg-redaction.d.ts +2 -0
- package/dist/agent/cli-arg-redaction.d.ts.map +1 -0
- package/dist/agent/cli-arg-redaction.js +18 -0
- package/dist/agent/cli-arg-redaction.js.map +1 -0
- package/dist/agent/code-act/constants.d.ts +1 -1
- package/dist/agent/code-act/constants.d.ts.map +1 -1
- package/dist/agent/code-act/constants.js +24 -3
- package/dist/agent/code-act/constants.js.map +1 -1
- package/dist/agent/code-act/host-bridge.d.ts +5 -1
- package/dist/agent/code-act/host-bridge.d.ts.map +1 -1
- package/dist/agent/code-act/host-bridge.js +56 -7
- package/dist/agent/code-act/host-bridge.js.map +1 -1
- package/dist/agent/code-act/type-definition-generator.d.ts +2 -2
- package/dist/agent/code-act/type-definition-generator.d.ts.map +1 -1
- package/dist/agent/code-act/type-definition-generator.js +29 -4
- package/dist/agent/code-act/type-definition-generator.js.map +1 -1
- package/dist/agent/codex-home.d.ts +1 -1
- package/dist/agent/codex-home.d.ts.map +1 -1
- package/dist/agent/codex-home.js +43 -1
- package/dist/agent/codex-home.js.map +1 -1
- package/dist/agent/codex-mcp-process.d.ts +2 -0
- package/dist/agent/codex-mcp-process.d.ts.map +1 -1
- package/dist/agent/codex-mcp-process.js +1 -1
- package/dist/agent/codex-mcp-process.js.map +1 -1
- package/dist/agent/context-compile-service.d.ts +47 -0
- package/dist/agent/context-compile-service.d.ts.map +1 -0
- package/dist/agent/context-compile-service.js +435 -0
- package/dist/agent/context-compile-service.js.map +1 -0
- 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 +48 -14
- package/dist/agent/gateway-tool-executor.d.ts.map +1 -1
- package/dist/agent/gateway-tool-executor.js +1000 -710
- package/dist/agent/gateway-tool-executor.js.map +1 -1
- package/dist/agent/gateway-tools.md +6 -3
- 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 +96 -10
- package/dist/agent/mama-tool-handlers.js.map +1 -1
- package/dist/agent/managed-agent-runtime-sync.d.ts.map +1 -1
- package/dist/agent/managed-agent-runtime-sync.js +2 -4
- package/dist/agent/managed-agent-runtime-sync.js.map +1 -1
- package/dist/agent/managed-agent-validation.d.ts.map +1 -1
- package/dist/agent/managed-agent-validation.js +2 -1
- package/dist/agent/managed-agent-validation.js.map +1 -1
- package/dist/agent/persistent-cli-process.d.ts +36 -0
- package/dist/agent/persistent-cli-process.d.ts.map +1 -1
- package/dist/agent/persistent-cli-process.js +199 -17
- 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 +10 -2
- package/dist/agent/tool-registry.js.map +1 -1
- package/dist/agent/types.d.ts +150 -5
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/api/agent-context-handler.d.ts +10 -0
- package/dist/api/agent-context-handler.d.ts.map +1 -0
- package/dist/api/agent-context-handler.js +216 -0
- package/dist/api/agent-context-handler.js.map +1 -0
- 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-handler.d.ts +2 -0
- package/dist/api/agent-handler.d.ts.map +1 -1
- package/dist/api/agent-handler.js +14 -7
- package/dist/api/agent-handler.js.map +1 -1
- 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/graph-api-types.d.ts +6 -1
- package/dist/api/graph-api-types.d.ts.map +1 -1
- package/dist/api/graph-api.d.ts +2 -1
- package/dist/api/graph-api.d.ts.map +1 -1
- package/dist/api/graph-api.js +177 -6
- package/dist/api/graph-api.js.map +1 -1
- package/dist/api/index.d.ts +23 -0
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +56 -2
- package/dist/api/index.js.map +1 -1
- package/dist/api/intelligence-handler.d.ts +17 -6
- package/dist/api/intelligence-handler.d.ts.map +1 -1
- package/dist/api/intelligence-handler.js +59 -1
- package/dist/api/intelligence-handler.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/cli/commands/start.d.ts +45 -0
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +482 -42
- package/dist/cli/commands/start.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/config-manager.d.ts.map +1 -1
- package/dist/cli/config/config-manager.js +134 -5
- package/dist/cli/config/config-manager.js.map +1 -1
- package/dist/cli/config/types.d.ts +14 -3
- package/dist/cli/config/types.d.ts.map +1 -1
- package/dist/cli/config/types.js +1 -0
- package/dist/cli/config/types.js.map +1 -1
- package/dist/cli/runtime/agent-loop-init.d.ts +4 -0
- package/dist/cli/runtime/agent-loop-init.d.ts.map +1 -1
- package/dist/cli/runtime/agent-loop-init.js +4 -4
- package/dist/cli/runtime/agent-loop-init.js.map +1 -1
- package/dist/cli/runtime/api-routes-init.d.ts.map +1 -1
- package/dist/cli/runtime/api-routes-init.js +18 -9
- package/dist/cli/runtime/api-routes-init.js.map +1 -1
- package/dist/cli/runtime/api-server-init.d.ts +7 -2
- package/dist/cli/runtime/api-server-init.d.ts.map +1 -1
- package/dist/cli/runtime/api-server-init.js +10 -1
- package/dist/cli/runtime/api-server-init.js.map +1 -1
- package/dist/cli/runtime/connector-init.d.ts +13 -4
- package/dist/cli/runtime/connector-init.d.ts.map +1 -1
- package/dist/cli/runtime/connector-init.js +82 -56
- 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 +45 -0
- package/dist/cli/runtime/envelope-bootstrap.js.map +1 -0
- package/dist/cli/runtime/gateway-init.d.ts +1 -1
- package/dist/cli/runtime/gateway-init.d.ts.map +1 -1
- package/dist/cli/runtime/gateway-init.js.map +1 -1
- 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/cli/runtime/utilities.js +2 -2
- package/dist/cli/runtime/utilities.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 +53 -3
- 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/db/agent-store.d.ts +29 -1
- package/dist/db/agent-store.d.ts.map +1 -1
- package/dist/db/agent-store.js +99 -9
- 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 +221 -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 +7 -0
- package/dist/envelope/key-provider.d.ts.map +1 -0
- package/dist/envelope/key-provider.js +137 -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/gateways/types.d.ts +1 -1
- package/dist/gateways/types.d.ts.map +1 -1
- package/dist/mcp/code-act-server.js +50 -7
- package/dist/mcp/code-act-server.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/raw-backed-memory-ingest.d.ts +26 -0
- package/dist/memory/raw-backed-memory-ingest.d.ts.map +1 -0
- package/dist/memory/raw-backed-memory-ingest.js +214 -0
- package/dist/memory/raw-backed-memory-ingest.js.map +1 -0
- package/dist/memory/scope-context.js +1 -1
- package/dist/multi-agent/agent-process-manager.d.ts +3 -0
- package/dist/multi-agent/agent-process-manager.d.ts.map +1 -1
- package/dist/multi-agent/agent-process-manager.js +121 -16
- package/dist/multi-agent/agent-process-manager.js.map +1 -1
- package/dist/multi-agent/dashboard-agent-persona.d.ts +1 -1
- package/dist/multi-agent/dashboard-agent-persona.d.ts.map +1 -1
- package/dist/multi-agent/dashboard-agent-persona.js +16 -9
- package/dist/multi-agent/dashboard-agent-persona.js.map +1 -1
- package/dist/multi-agent/runtime-process.d.ts +1 -0
- package/dist/multi-agent/runtime-process.d.ts.map +1 -1
- package/dist/multi-agent/runtime-process.js +1 -0
- package/dist/multi-agent/runtime-process.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/dist/multi-agent/types.d.ts +13 -3
- package/dist/multi-agent/types.d.ts.map +1 -1
- package/dist/multi-agent/types.js.map +1 -1
- package/dist/multi-agent/wiki-agent-persona.d.ts +1 -1
- package/dist/multi-agent/wiki-agent-persona.d.ts.map +1 -1
- package/dist/multi-agent/wiki-agent-persona.js +12 -4
- package/dist/multi-agent/wiki-agent-persona.js.map +1 -1
- package/dist/multi-agent/workflow-types.d.ts +1 -1
- package/dist/multi-agent/workflow-types.d.ts.map +1 -1
- package/package.json +3 -3
- package/scripts/generate-gateway-tools.ts +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,97 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.20.1] - 2026-05-04
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- **Context Compile runtime path** — Added the standalone service, gateway tool, HTTP integration,
|
|
15
|
+
model-run lineage, and trusted `context_packet_id` save provenance for compiled evidence packets
|
|
16
|
+
- **Dashboard/wiki Context Compile adoption** — Managed system-agent defaults, legacy config
|
|
17
|
+
migration, personas, and scheduled prompts now route evidence gathering through
|
|
18
|
+
`context_compile` before falling back to `mama_search`
|
|
19
|
+
- **Raw-backed connector memory ingest** — Deterministic memory candidate builder and ingest
|
|
20
|
+
path lift connector evidence into scope-bound memory without LLM extraction, with isolation
|
|
21
|
+
tests against the case and decision stores
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
|
|
25
|
+
- **Code-Act policy hardening** — `/api/code-act` now requires an existing `useCodeAct: true`
|
|
26
|
+
agent, intersects request allowlists with configured gateway policy, handles blocked-only policy
|
|
27
|
+
safely, and avoids falling back to full MCP configs for Code-Act-only agents
|
|
28
|
+
- **Code-Act allowlist deny-by-default** — `resolveCodeActAgentPolicy` rejects agents whose
|
|
29
|
+
resolved allowed tools are undefined or empty, `buildCodeActRole` no longer falls back to
|
|
30
|
+
wildcard, and `intersectAllowedToolPolicies` distinguishes undefined (fallback) from explicit
|
|
31
|
+
empty arrays (deny-all)
|
|
32
|
+
- **Trusted provenance fail-closed paths** — Packet-backed `mama_save` calls now reject invalid or
|
|
33
|
+
unavailable trusted provenance instead of widening scopes or silently dropping `context_packet_id`,
|
|
34
|
+
and `getContextPacketIdForTrustedProvenance` throws on present-but-invalid values so the
|
|
35
|
+
request fails with `context_packet_denied`
|
|
36
|
+
- **Tier-3 context_compile fail-closed** — `handleContextCompile` checks `agentContext.tier` and
|
|
37
|
+
`envelope.tier` independently so a non-Tier-3 agent context cannot mask a Tier-3 envelope via
|
|
38
|
+
the previous `??` fallback
|
|
39
|
+
- **bindConfiguredScope canonicalization** — Project-scoped connector items now derive a single
|
|
40
|
+
canonical project id from channel config, item metadata, and item.projectId for both
|
|
41
|
+
`projectId` and `memoryScopeId`, and stamp a default tenant alongside the scope so configured
|
|
42
|
+
channel raw evidence is no longer filtered out by the default `tenant_id` boundary
|
|
43
|
+
- **Envelope key TOCTOU** — `loadOrCreateLocalEnvelopeSigningKey` uses an atomic `wx`-flag write
|
|
44
|
+
with EEXIST handling instead of a non-atomic `existsSync`+write, so concurrent processes
|
|
45
|
+
converge on the first key written instead of overwriting each other
|
|
46
|
+
- **Raw-backed memory save validation** — `ingestRawBackedMemoryCandidates` now requires an
|
|
47
|
+
explicit `success: true` with a non-empty `id` from `saveMemory` before counting a row as saved
|
|
48
|
+
- **Wiki-agent feature gating** — `normalizeLegacyMultiAgentConfig` only backfills the built-in
|
|
49
|
+
`wiki-agent` when `config.wiki.enabled` is true, matching runtime provisioning by `runAgentLoop`
|
|
50
|
+
and api-routes-init
|
|
51
|
+
- **Managed dashboard persona broader fallback** — Dashboard persona v8 falls back to
|
|
52
|
+
`mama_search` on any non-success `context_compile` result, not only when the worker envelope is
|
|
53
|
+
missing, and the Tools section description matches the workflow step
|
|
54
|
+
- **Code-Act gateway allowlist migration test** — `should upgrade old built-in Code-Act gateway
|
|
55
|
+
allowlists with context_compile on load` now asserts exact array equality so the migration
|
|
56
|
+
cannot drop a previously allowed tool while adding `context_compile`
|
|
57
|
+
|
|
58
|
+
## [0.20.0] - 2026-05-01
|
|
59
|
+
|
|
60
|
+
### Added
|
|
61
|
+
|
|
62
|
+
- **Reactive envelope runtime** — Standalone now issues and stores signed gateway envelopes, exposes
|
|
63
|
+
public health separately from authenticated envelope status, and audits scope mismatches through
|
|
64
|
+
`agent_activity`
|
|
65
|
+
- **Worker evidence APIs** — Added authenticated memory provenance, raw search, agent situation,
|
|
66
|
+
and agent graph/entity API handlers so workers can retrieve bounded evidence without direct DB
|
|
67
|
+
access
|
|
68
|
+
- **Envelope-aware gateway tooling** — Code-Act, gateway execution, internal agent-loop calls, and
|
|
69
|
+
model/tool trace paths now propagate envelope context for trusted provenance
|
|
70
|
+
- **Strict `mama_search` controls** — Gateway, MCP, Code-Act, ToolRegistry, and generated tool docs
|
|
71
|
+
now expose `scopes`, `strict`, `strictness`, `threshold`, `disableRecency`, `includeRelated`,
|
|
72
|
+
`topicPrefix`, `minLexicalSupport`, and `diagnostics`
|
|
73
|
+
- **Persistent process cleanup settings** — `timeouts.persistent_process_idle_ms`,
|
|
74
|
+
`timeouts.persistent_process_cleanup_ms`, and `timeouts.persistent_process_pending_tool_ms`
|
|
75
|
+
let operators tune how aggressively idle CLI processes are reclaimed
|
|
76
|
+
|
|
77
|
+
### Changed
|
|
78
|
+
|
|
79
|
+
- **Gateway executor architecture** — Delegation execution and gateway tool execution were split
|
|
80
|
+
into clearer modules, with ToolRegistry kept as the valid-tool source of truth for generated
|
|
81
|
+
prompts and executor validation
|
|
82
|
+
- **Connector raw stores** — Raw connector persistence now writes provenance and unified indexes so
|
|
83
|
+
worker APIs can query raw evidence consistently
|
|
84
|
+
- **Envelope-aware memory search** — `mama_search` now defaults to effective envelope scopes and
|
|
85
|
+
rejects caller scopes outside the active envelope before searching
|
|
86
|
+
- **Search diagnostics preservation** — Standalone search result types and handler responses now
|
|
87
|
+
keep `diagnostics`, `retrieval_diagnostics`, and `contributing_leaf_diagnostics` instead of
|
|
88
|
+
dropping them at API boundaries
|
|
89
|
+
|
|
90
|
+
### Fixed
|
|
91
|
+
|
|
92
|
+
- **Envelope hardening** — Reactive envelope startup, internal tool contexts, scope mismatch
|
|
93
|
+
logging, authenticated status reporting, worker graph/entity visibility, and graph API internal
|
|
94
|
+
error responses now have review-driven regression coverage
|
|
95
|
+
- **Scoped recent-list search** — No-query `mama_search` now passes scopes into recent decision
|
|
96
|
+
listing instead of returning global recent decisions
|
|
97
|
+
- **Long-lived Claude process buildup** — Persistent CLI processes are now reclaimed after idle
|
|
98
|
+
timeouts while active tool-result loops keep a bounded lease; `mama stop` also avoids unsafe
|
|
99
|
+
broad kills and handles large `ps` output safely
|
|
100
|
+
|
|
10
101
|
## [0.19.1] - 2026-04-20
|
|
11
102
|
|
|
12
103
|
### Fixed
|
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.
|
|
@@ -139,20 +150,21 @@ 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
|
|
@@ -176,6 +188,14 @@ Main config: `~/.mama/config.yaml`
|
|
|
176
188
|
| `MAMA_HTTP_PORT` | `3847` |
|
|
177
189
|
| `MAMA_WORKSPACE` | `~/.mama/workspace` |
|
|
178
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 |
|
|
198
|
+
|
|
179
199
|
## Related Packages
|
|
180
200
|
|
|
181
201
|
| Package | Purpose |
|
|
@@ -189,7 +209,7 @@ Main config: `~/.mama/config.yaml`
|
|
|
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,11 +32,12 @@ 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;
|
|
38
40
|
private readonly mcpExecutor;
|
|
39
|
-
private systemPromptOverride?;
|
|
40
41
|
private readonly maxTurns;
|
|
41
42
|
private readonly model;
|
|
42
43
|
private readonly onTurn?;
|
|
@@ -51,6 +52,7 @@ export declare class AgentLoop {
|
|
|
51
52
|
private readonly isGatewayMode;
|
|
52
53
|
private readonly useCodeAct;
|
|
53
54
|
private readonly backend;
|
|
55
|
+
private readonly defaultSystemPrompt;
|
|
54
56
|
private readonly postToolHandler;
|
|
55
57
|
private readonly stopContinuationHandler;
|
|
56
58
|
private readonly preCompactHandler;
|
|
@@ -59,6 +61,7 @@ export declare class AgentLoop {
|
|
|
59
61
|
private currentTier;
|
|
60
62
|
private readonly disallowedTools?;
|
|
61
63
|
constructor(_oauthManager: OAuthManager, options?: AgentLoopOptions, _clientOptions?: ClaudeClientOptions, executorOptions?: GatewayToolExecutorOptions);
|
|
64
|
+
setContextCompileService(service: GatewayToolExecutorOptions['contextCompileService']): void;
|
|
62
65
|
/**
|
|
63
66
|
* Set session key for lane-based concurrency
|
|
64
67
|
* Use format: "{source}:{channelId}:{userId}"
|
|
@@ -172,6 +175,10 @@ export declare class AgentLoop {
|
|
|
172
175
|
* Internal implementation of runWithContent (without lane queueing)
|
|
173
176
|
*/
|
|
174
177
|
private runWithContentInternal;
|
|
178
|
+
private shouldBeginModelRun;
|
|
179
|
+
private withBackgroundTaskRegistry;
|
|
180
|
+
private drainBackgroundTasks;
|
|
181
|
+
private buildModelRunInput;
|
|
175
182
|
/**
|
|
176
183
|
* Execute tools from response content blocks
|
|
177
184
|
*/
|
|
@@ -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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"}
|