memorix 1.2.0 → 1.2.2
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 +30 -1
- package/README.md +18 -4
- package/README.zh-CN.md +18 -4
- package/TEAM.md +86 -86
- package/dist/cli/index.js +15919 -14055
- package/dist/cli/index.js.map +1 -1
- package/dist/index.js +1997 -1021
- package/dist/index.js.map +1 -1
- package/dist/maintenance-runner.d.ts +1 -1
- package/dist/maintenance-runner.js +8481 -8005
- package/dist/maintenance-runner.js.map +1 -1
- package/dist/memcode-runtime/CHANGELOG.md +30 -1
- package/dist/sdk.d.ts +7 -2
- package/dist/sdk.js +2022 -1024
- package/dist/sdk.js.map +1 -1
- package/dist/types.d.ts +49 -1
- package/dist/types.js.map +1 -1
- package/docs/1.2.2-MEMORY-CONTROL-PLANE.md +434 -0
- package/docs/AGENT_OPERATOR_PLAYBOOK.md +4 -0
- package/docs/API_REFERENCE.md +27 -5
- package/docs/DESIGN_DECISIONS.md +357 -357
- package/docs/DEVELOPMENT.md +4 -0
- package/docs/README.md +1 -1
- package/docs/SETUP.md +7 -1
- package/docs/dev-log/progress.txt +91 -11
- package/docs/knowledge/workflows/memorix-release.md +57 -0
- package/package.json +1 -1
- package/plugins/codex/memorix/.codex-plugin/plugin.json +1 -1
- package/src/audit/index.ts +156 -156
- package/src/cli/command-guide.ts +192 -0
- package/src/cli/commands/audit-list.ts +89 -89
- package/src/cli/commands/audit.ts +9 -4
- package/src/cli/commands/background.ts +659 -659
- package/src/cli/commands/cleanup.ts +5 -1
- package/src/cli/commands/codegraph.ts +17 -8
- package/src/cli/commands/context.ts +3 -2
- package/src/cli/commands/doctor.ts +4 -2
- package/src/cli/commands/explain.ts +9 -3
- package/src/cli/commands/formation.ts +48 -48
- package/src/cli/commands/git-hook-install.ts +111 -111
- package/src/cli/commands/handoff.ts +75 -61
- package/src/cli/commands/hooks-status.ts +63 -63
- package/src/cli/commands/identity.ts +116 -0
- package/src/cli/commands/ingest-commit.ts +153 -153
- package/src/cli/commands/ingest-image.ts +71 -69
- package/src/cli/commands/ingest-log.ts +180 -180
- package/src/cli/commands/ingest.ts +44 -44
- package/src/cli/commands/integrate-shared.ts +15 -15
- package/src/cli/commands/knowledge.ts +40 -0
- package/src/cli/commands/lock.ts +93 -92
- package/src/cli/commands/memory.ts +58 -21
- package/src/cli/commands/message.ts +123 -118
- package/src/cli/commands/operator-shared.ts +98 -3
- package/src/cli/commands/poll.ts +74 -64
- package/src/cli/commands/purge-all-memory.ts +85 -85
- package/src/cli/commands/purge-project-memory.ts +83 -83
- package/src/cli/commands/reasoning.ts +135 -121
- package/src/cli/commands/retention.ts +9 -4
- package/src/cli/commands/serve-http.ts +22 -43
- package/src/cli/commands/serve-shared.ts +118 -118
- package/src/cli/commands/session.ts +29 -3
- package/src/cli/commands/setup.ts +9 -3
- package/src/cli/commands/skills.ts +124 -119
- package/src/cli/commands/status.ts +4 -3
- package/src/cli/commands/task.ts +193 -184
- package/src/cli/commands/team.ts +14 -10
- package/src/cli/commands/transfer.ts +108 -55
- package/src/cli/commands/uninstall-project-artifacts.ts +85 -85
- package/src/cli/identity.ts +89 -0
- package/src/cli/index.ts +96 -19
- package/src/cli/invocation.ts +115 -0
- package/src/cli/tui/ChatView.tsx +234 -234
- package/src/cli/tui/CommandBar.tsx +312 -312
- package/src/cli/tui/ContextRail.tsx +118 -118
- package/src/cli/tui/HeaderBar.tsx +72 -72
- package/src/cli/tui/LogoBanner.tsx +51 -51
- package/src/cli/tui/Sidebar.tsx +179 -179
- package/src/cli/tui/chat-service.ts +41 -18
- package/src/cli/tui/data.ts +23 -44
- package/src/cli/tui/index.ts +41 -41
- package/src/cli/tui/markdown-render.tsx +371 -371
- package/src/cli/tui/operator-context.ts +60 -0
- package/src/cli/tui/use-mouse.ts +157 -157
- package/src/cli/tui/useNavigation.ts +56 -56
- package/src/cli/tui/views/MemoryView.tsx +10 -8
- package/src/cli/update-checker.ts +211 -211
- package/src/cli/version.ts +7 -7
- package/src/cli/workbench.ts +1 -1
- package/src/codegraph/auto-context.ts +34 -17
- package/src/codegraph/context-pack.ts +1 -0
- package/src/codegraph/current-facts.ts +19 -1
- package/src/codegraph/project-context.ts +2 -0
- package/src/codegraph/task-lens.ts +49 -5
- package/src/compact/engine.ts +26 -10
- package/src/compact/index-format.ts +25 -2
- package/src/compact/token-budget.ts +74 -74
- package/src/dashboard/project-classification.ts +64 -64
- package/src/dashboard/server.ts +58 -52
- package/src/embedding/fastembed-provider.ts +142 -142
- package/src/embedding/transformers-provider.ts +111 -111
- package/src/git/extractor.ts +209 -209
- package/src/git/hooks-path.ts +85 -85
- package/src/hooks/admission.ts +117 -0
- package/src/hooks/handler.ts +98 -91
- package/src/hooks/pattern-detector.ts +173 -173
- package/src/hooks/significance-filter.ts +250 -250
- package/src/knowledge/claims.ts +51 -1
- package/src/knowledge/context-assembly.ts +97 -0
- package/src/knowledge/types.ts +1 -0
- package/src/knowledge/workflows.ts +34 -3
- package/src/knowledge/workset.ts +179 -10
- package/src/llm/memory-manager.ts +328 -328
- package/src/llm/provider.ts +885 -885
- package/src/llm/quality.ts +248 -248
- package/src/memory/admission.ts +57 -0
- package/src/memory/attribution-guard.ts +249 -249
- package/src/memory/auto-relations.ts +21 -0
- package/src/memory/consolidation.ts +13 -2
- package/src/memory/disclosure-policy.ts +140 -135
- package/src/memory/entity-extractor.ts +197 -197
- package/src/memory/export-import.ts +11 -3
- package/src/memory/formation/evaluate.ts +217 -217
- package/src/memory/formation/extract.ts +361 -361
- package/src/memory/formation/index.ts +417 -417
- package/src/memory/formation/resolve.ts +344 -344
- package/src/memory/formation/types.ts +315 -315
- package/src/memory/freshness.ts +122 -122
- package/src/memory/graph-context.ts +8 -2
- package/src/memory/graph-scope.ts +46 -0
- package/src/memory/graph.ts +197 -197
- package/src/memory/observations.ts +162 -4
- package/src/memory/quality-audit.ts +2 -0
- package/src/memory/refs.ts +94 -94
- package/src/memory/retention.ts +22 -2
- package/src/memory/secret-filter.ts +79 -79
- package/src/memory/session.ts +5 -2
- package/src/memory/visibility.ts +80 -0
- package/src/multimodal/image-loader.ts +143 -143
- package/src/orchestrate/adapters/claude-stream.ts +192 -192
- package/src/orchestrate/adapters/claude.ts +111 -111
- package/src/orchestrate/adapters/codex-stream.ts +134 -134
- package/src/orchestrate/adapters/codex.ts +41 -41
- package/src/orchestrate/adapters/gemini-stream.ts +166 -166
- package/src/orchestrate/adapters/gemini.ts +42 -42
- package/src/orchestrate/adapters/index.ts +73 -73
- package/src/orchestrate/adapters/opencode-stream.ts +143 -143
- package/src/orchestrate/adapters/opencode.ts +47 -47
- package/src/orchestrate/adapters/spawn-helper.ts +286 -286
- package/src/orchestrate/adapters/types.ts +77 -77
- package/src/orchestrate/capability-router.ts +284 -284
- package/src/orchestrate/context-compact.ts +188 -188
- package/src/orchestrate/cost-tracker.ts +219 -219
- package/src/orchestrate/error-recovery.ts +191 -191
- package/src/orchestrate/evidence.ts +140 -140
- package/src/orchestrate/ledger.ts +110 -110
- package/src/orchestrate/memorix-bridge.ts +378 -340
- package/src/orchestrate/output-budget.ts +80 -80
- package/src/orchestrate/permission.ts +152 -152
- package/src/orchestrate/pipeline-trace.ts +131 -131
- package/src/orchestrate/prompt-builder.ts +155 -155
- package/src/orchestrate/ring-buffer.ts +37 -37
- package/src/orchestrate/task-graph.ts +389 -389
- package/src/orchestrate/verify-gate.ts +33 -10
- package/src/orchestrate/worktree.ts +232 -232
- package/src/project/aliases.ts +374 -374
- package/src/project/detector.ts +268 -268
- package/src/rules/adapters/claude-code.ts +99 -99
- package/src/rules/adapters/codex.ts +97 -97
- package/src/rules/adapters/copilot.ts +124 -124
- package/src/rules/adapters/cursor.ts +114 -114
- package/src/rules/adapters/kiro.ts +126 -126
- package/src/rules/adapters/trae.ts +56 -56
- package/src/rules/adapters/windsurf.ts +83 -83
- package/src/rules/syncer.ts +235 -235
- package/src/runtime/control-plane-maintenance.ts +1 -0
- package/src/runtime/isolated-maintenance.ts +1 -0
- package/src/runtime/lifecycle.ts +18 -0
- package/src/runtime/maintenance-jobs.ts +1 -0
- package/src/runtime/maintenance-runner.ts +2 -0
- package/src/runtime/project-maintenance.ts +89 -0
- package/src/sdk.ts +334 -304
- package/src/search/intent-detector.ts +289 -289
- package/src/search/query-expansion.ts +52 -52
- package/src/server/formation-timeout.ts +27 -27
- package/src/server.ts +334 -93
- package/src/skills/mini-skills.ts +386 -386
- package/src/store/chat-store.ts +119 -119
- package/src/store/graph-store.ts +249 -249
- package/src/store/mini-skill-store.ts +349 -349
- package/src/store/orama-store.ts +61 -6
- package/src/store/persistence-json.ts +212 -212
- package/src/store/persistence.ts +291 -291
- package/src/store/project-affinity.ts +195 -195
- package/src/store/sqlite-db.ts +23 -1
- package/src/store/sqlite-store.ts +12 -2
- package/src/team/event-bus.ts +76 -76
- package/src/team/file-locks.ts +173 -173
- package/src/team/handoff.ts +168 -161
- package/src/team/messages.ts +203 -203
- package/src/team/poll.ts +132 -132
- package/src/team/tasks.ts +211 -211
- package/src/types.ts +51 -0
- package/src/wiki/generator.ts +2 -0
- package/src/workspace/mcp-adapters/codex.ts +191 -191
- package/src/workspace/mcp-adapters/copilot.ts +105 -105
- package/src/workspace/mcp-adapters/cursor.ts +53 -53
- package/src/workspace/mcp-adapters/kiro.ts +64 -64
- package/src/workspace/mcp-adapters/opencode.ts +123 -123
- package/src/workspace/mcp-adapters/trae.ts +134 -134
- package/src/workspace/mcp-adapters/windsurf.ts +91 -91
- package/src/workspace/sanitizer.ts +60 -60
- package/src/workspace/workflow-sync.ts +131 -131
package/CHANGELOG.md
CHANGED
|
@@ -2,7 +2,36 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
-
## [
|
|
5
|
+
## [1.2.2] - 2026-07-25
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
- **Direct CLI control plane** -- Added a consistent terminal surface for memory, context, Code State, knowledge, coordination, audit, and transfer work. `--cwd` selects the Git project from any shell, `memorix workbench` explicitly opens the interactive terminal UI, and every action group now has task-oriented help.
|
|
9
|
+
- **Explicit local CLI identity** -- Added `memorix identity status|join|use|clear`. A user can deliberately activate one project coordination identity for personal/team memory and task, message, lock, handoff, and poll commands without needing an MCP connection.
|
|
10
|
+
- **Automation-friendly transfer** -- Memory exports can write directly to a file, and imports accept `--file` or `--stdin` as well as existing inline JSON.
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
- **One visibility reader across terminal surfaces** -- CLI commands, Workbench search, recents, health, graph, knowledge, and chat now resolve the same project/actor reader. An unbound terminal remains project-scoped by default.
|
|
14
|
+
- **CLI ergonomics** -- Root `search`, `remember`, and `recent` aliases now use the canonical memory commands; kebab-case flags are accepted alongside the existing camelCase forms.
|
|
15
|
+
|
|
16
|
+
### Fixed
|
|
17
|
+
- **Private evidence cannot become public indirectly** -- Personal and team observations are rejected when promoting shared skills or generating project skills.
|
|
18
|
+
- **TUI visibility mismatch** -- The interactive terminal UI no longer falls back to an unbound reader after an explicit local identity has been activated.
|
|
19
|
+
- **Transfer visibility bypass** -- CLI and MCP exports now include only observations readable by the current caller, rather than exporting personal/team records from the same project by default.
|
|
20
|
+
|
|
21
|
+
## [1.2.1] - 2026-07-19
|
|
22
|
+
|
|
23
|
+
### Added
|
|
24
|
+
- **Review-gated Knowledge claims** -- Explicit agent observations now become source-backed candidates first. They can be inspected and deliberately approved or rejected through `memorix knowledge claims` / `memorix knowledge review` or the advanced `memorix_knowledge` MCP action before they enter knowledge compilation.
|
|
25
|
+
- **Versioned Memorix release workflow** -- Added `docs/knowledge/workflows/memorix-release.md`, a canonical release playbook with verification gates and an explicit maintainer approval boundary.
|
|
26
|
+
|
|
27
|
+
### Fixed
|
|
28
|
+
- **Claude setup respects `--noHooks`** -- Project setup now keeps generated `CLAUDE.md` guidance without also creating Claude lifecycle-hook configuration when hook capture was explicitly disabled.
|
|
29
|
+
- **Claude Code manual MCP readiness** -- Manual setup examples now include Claude Code's `alwaysLoad: true` entry and point to Doctor/Repair for detecting and restoring the eager-load contract.
|
|
30
|
+
- **Workflow import fidelity** -- Canonical Windsurf workflows preserve their source ID, title, agents, phases, and verification gates instead of being reduced to a generated `workflow:<hash>` entry. Release workflows no longer match a non-release task merely because it says “verify” or “test”.
|
|
31
|
+
- **Graph surface consistency** -- Explicit `relatedEntities` now persist as graph edges, and MCP graph tools, standalone Dashboard, HTTP control plane, and exports share one project-scoping rule.
|
|
32
|
+
- **Intent-aware task and workflow routing** -- A safety constraint such as “do not publish” no longer routes an incident or debugging task into a release lens or release workflow. Explicit release requests still retain release verification while publication is deferred for approval.
|
|
33
|
+
- **Git fact consistency** -- Project Context, Context Pack, and CodeGraph CLI now report `Git: unavailable` for an invalid or unreadable repository instead of presenting it as a clean worktree.
|
|
34
|
+
- **Windows verification-gate timeout** -- A timed-out orchestration gate now resolves promptly while its shell process tree is terminated in the background, instead of waiting indefinitely for a descendant process to close.
|
|
6
35
|
|
|
7
36
|
## [1.2.0] - 2026-07-18
|
|
8
37
|
|
package/README.md
CHANGED
|
@@ -64,7 +64,7 @@ Memorix is more than a memory store. It also installs agent integrations, keeps
|
|
|
64
64
|
| Code State and Code Memory | Versioned local code snapshots, file/symbol links, and freshness checks. The built-in Lite index is always honest about its limits; an already-indexed local CodeGraph can add a bounded semantic outline | `memorix codegraph`, automatic context refresh |
|
|
65
65
|
| Git Memory | Commit-derived engineering facts that answer what changed, where, and why it matters | `memorix ingest commit`, git hook |
|
|
66
66
|
| Reasoning Memory | Design rationale, alternatives, trade-offs, and risks that should survive beyond one chat | `memorix reasoning`, memory formation |
|
|
67
|
-
| Knowledge Workspace |
|
|
67
|
+
| Knowledge Workspace | Review-gated source-backed claims, Markdown pages, and canonical project workflows; proposals never overwrite reviewed pages silently | `memorix knowledge`, `memorix knowledge workflow` |
|
|
68
68
|
| Agent setup | One setup path for MCP, rules, hooks, skills, plugins, bundles, or extensions depending on the agent | `memorix setup --agent <agent>` |
|
|
69
69
|
| Agent doctor | Checks whether agent MCP config and guidance are current, then repairs Memorix-owned entries when needed | `memorix doctor agents`, `memorix repair agents` |
|
|
70
70
|
| Hooks and skills | Optional capture from supported agents, plus reusable project skills promoted from durable knowledge | `memorix hooks`, `memorix skills` |
|
|
@@ -258,7 +258,7 @@ What it installs depends on the target agent, but the goal is the same: make Mem
|
|
|
258
258
|
- Hermes Agent: installs into Hermes home (`%LOCALAPPDATA%\hermes` on native Windows, `~/.hermes` elsewhere, or `HERMES_HOME`), enables the plugin in `config.yaml`, registers plugin hooks, slash/CLI commands, skills, and writes MCP config.
|
|
259
259
|
- Oh-my-Pi: installs an `omp.extensions` package with extension hook events, a `memorix` command, official skills, and writes MCP config.
|
|
260
260
|
|
|
261
|
-
Need a quieter install? Add `--noHooks` for targets where setup can control hook capture separately from the host's official package entry.
|
|
261
|
+
Need a quieter install? Add `--noHooks` for targets where setup can control hook capture separately from the host's official package entry. It keeps MCP and guidance, but skips Memorix hook capture.
|
|
262
262
|
|
|
263
263
|
If you intentionally want repo-local guidance or hooks, run the same command inside that repository without `--global`.
|
|
264
264
|
|
|
@@ -275,6 +275,8 @@ If your agent only needs a manual MCP entry, use stdio:
|
|
|
275
275
|
}
|
|
276
276
|
```
|
|
277
277
|
|
|
278
|
+
For a manually managed Claude Code entry, add `"alwaysLoad": true` inside the `memorix` server object. This lets Claude Code expose Memorix tools during print-mode startup; `memorix doctor agents --agent claude` can detect and repair a missing setting.
|
|
279
|
+
|
|
278
280
|
HTTP is not required for normal setup. Use it only when you intentionally want a shared background service, dashboard, Docker, or multiple clients using the same endpoint:
|
|
279
281
|
|
|
280
282
|
```bash
|
|
@@ -315,14 +317,25 @@ npm uninstall -g memorix
|
|
|
315
317
|
### Work from the CLI
|
|
316
318
|
|
|
317
319
|
```bash
|
|
318
|
-
memorix context --task "continue release blocker"
|
|
320
|
+
memorix --cwd /path/to/repo context --task "continue release blocker"
|
|
319
321
|
memorix memory search --query "release blocker"
|
|
322
|
+
memorix memory --help
|
|
323
|
+
|
|
324
|
+
# Optional: activate one local agent identity for personal/team records and coordination.
|
|
325
|
+
memorix identity join --agent-type codex --name codex-main
|
|
326
|
+
memorix memory store --text "private investigation note" --visibility personal
|
|
327
|
+
memorix task create --description "verify the release package"
|
|
328
|
+
|
|
329
|
+
memorix transfer export --format json --out ./.memorix-export.json
|
|
330
|
+
memorix transfer import --file ./.memorix-export.json
|
|
320
331
|
memorix reasoning search --query "why sqlite"
|
|
321
332
|
memorix git-hook --force
|
|
322
333
|
memorix ingest log --count 20
|
|
323
|
-
memorix
|
|
334
|
+
memorix workbench
|
|
324
335
|
```
|
|
325
336
|
|
|
337
|
+
The CLI is direct and does not depend on an MCP session. It binds to the current Git project, or to the project supplied with `--cwd`. Without an active identity it reads, writes, and exports project-visible memory only. Use `memorix identity join` or `memorix identity use --agent-id <id>` only when you intentionally need personal/team memory or coordinated task actions; `memorix identity clear` returns the terminal to project scope. `--as <active-agent-id>` is the one-command alternative for scripts. Both camelCase and kebab-case flags are accepted.
|
|
338
|
+
|
|
326
339
|
### Use the bundled terminal agent
|
|
327
340
|
|
|
328
341
|
```bash
|
|
@@ -356,6 +369,7 @@ Search is project-scoped by default. `scope="global"` searches across projects.
|
|
|
356
369
|
| Run shared HTTP MCP plus dashboard | `memorix background start` |
|
|
357
370
|
| Debug HTTP MCP in the foreground | `memorix serve-http --port 3211` |
|
|
358
371
|
| Inspect or manage memory directly | `memorix memory`, `memorix reasoning`, `memorix session`, `memorix ingest` |
|
|
372
|
+
| Use the interactive terminal memory control plane | `memorix workbench` |
|
|
359
373
|
| Use the bundled terminal agent | `memorix` or `memcode` |
|
|
360
374
|
| Run orchestrated subagent work | `memorix orchestrate --goal "..."` |
|
|
361
375
|
|
package/README.zh-CN.md
CHANGED
|
@@ -64,7 +64,7 @@ Memorix 不只是一个记忆库。它还负责安装 Agent 接入、保留有
|
|
|
64
64
|
| Code State 和 Code Memory | 可版本化的本地代码快照、文件 / symbol 关联和 freshness 检查。内置 Lite 会如实说明边界;已有本地索引的 CodeGraph 可额外给出有预算的语义关系 | `memorix codegraph`、自动 context refresh |
|
|
65
65
|
| Git Memory | 从 commit 中提取工程事实,回答改了什么、在哪里改、为什么重要 | `memorix ingest commit`、git hook |
|
|
66
66
|
| Reasoning Memory | 保存设计原因、备选方案、trade-off 和风险,不让决策只留在一次聊天里 | `memorix reasoning`、memory formation |
|
|
67
|
-
| Knowledge Workspace |
|
|
67
|
+
| Knowledge Workspace | 有审核门槛的来源证据 Claim、Markdown 知识页和规范化项目工作流;提案不会悄悄覆盖已审阅页面 | `memorix knowledge`、`memorix knowledge workflow` |
|
|
68
68
|
| Agent setup | 按目标 Agent 写入 MCP、rules、hooks、skills、plugin、bundle 或 extension | `memorix setup --agent <agent>` |
|
|
69
69
|
| Agent doctor | 检查 Agent 的 MCP 配置和规则是否是当前版本,并修复 Memorix 自己管理的条目 | `memorix doctor agents`、`memorix repair agents` |
|
|
70
70
|
| Hooks 和 skills | 在支持的 Agent 中可选捕获工作事件,并把稳定知识提升成可复用项目技能 | `memorix hooks`、`memorix skills` |
|
|
@@ -258,7 +258,7 @@ memorix setup --agent omp --global
|
|
|
258
258
|
- Hermes Agent:安装到 Hermes home(Windows native 默认为 `%LOCALAPPDATA%\hermes`,其他平台默认为 `~/.hermes`,也支持 `HERMES_HOME`),在 `config.yaml` 启用插件,注册 plugin hooks、slash/CLI commands、skills,并写入 MCP 配置。
|
|
259
259
|
- Oh-my-Pi:安装 `omp.extensions` package,包含 extension hook 事件、`memorix` command、官方 skills,并写入 MCP 配置。
|
|
260
260
|
|
|
261
|
-
如果你想要更安静一点的安装,可以对那些 setup 能独立控制 hook capture 的 target 加 `--noHooks
|
|
261
|
+
如果你想要更安静一点的安装,可以对那些 setup 能独立控制 hook capture 的 target 加 `--noHooks`。它会保留 MCP 和使用规范,只跳过 Memorix 的 hook 自动捕获。
|
|
262
262
|
|
|
263
263
|
如果你明确想要项目级指导或 hooks,就在那个仓库目录里再跑一次不带 `--global` 的 `memorix setup --agent <agent>`。
|
|
264
264
|
|
|
@@ -275,6 +275,8 @@ memorix setup --agent omp --global
|
|
|
275
275
|
}
|
|
276
276
|
```
|
|
277
277
|
|
|
278
|
+
如果是手动维护 Claude Code 的 MCP 配置,需要在 `memorix` server 对象里加上 `"alwaysLoad": true`。这样 Claude Code 在 print-mode 启动时就会暴露 Memorix tools;`memorix doctor agents --agent claude` 可以检查并修复缺失的设置。
|
|
279
|
+
|
|
278
280
|
普通安装不需要 HTTP。只有在你明确需要共享后台服务、Dashboard、Docker,或多个客户端共用一个端点时才使用:
|
|
279
281
|
|
|
280
282
|
```bash
|
|
@@ -315,14 +317,25 @@ npm uninstall -g memorix
|
|
|
315
317
|
### 从 CLI 管理记忆
|
|
316
318
|
|
|
317
319
|
```bash
|
|
318
|
-
memorix context --task "
|
|
320
|
+
memorix --cwd /path/to/repo context --task "继续处理发布阻塞问题"
|
|
319
321
|
memorix memory search --query "release blocker"
|
|
322
|
+
memorix memory --help
|
|
323
|
+
|
|
324
|
+
# 可选:只在需要个人/团队记忆或协同时激活本地身份。
|
|
325
|
+
memorix identity join --agent-type codex --name codex-main
|
|
326
|
+
memorix memory store --text "个人排查笔记" --visibility personal
|
|
327
|
+
memorix task create --description "验证发布包"
|
|
328
|
+
|
|
329
|
+
memorix transfer export --format json --out ./.memorix-export.json
|
|
330
|
+
memorix transfer import --file ./.memorix-export.json
|
|
320
331
|
memorix reasoning search --query "why sqlite"
|
|
321
332
|
memorix git-hook --force
|
|
322
333
|
memorix ingest log --count 20
|
|
323
|
-
memorix
|
|
334
|
+
memorix workbench
|
|
324
335
|
```
|
|
325
336
|
|
|
337
|
+
CLI 是直接入口,不依赖 MCP 会话。它默认绑定当前 Git 项目,也可以用 `--cwd` 指定项目。没有激活身份时,只会读写和导出项目公开记忆;只有明确需要个人/团队记忆或协同任务时,才运行 `memorix identity join` 或 `memorix identity use --agent-id <id>`。`memorix identity clear` 会回到项目公开范围;脚本可用一次性的 `--as <active-agent-id>`。已有 camelCase 参数仍兼容,kebab-case 也可直接使用。
|
|
338
|
+
|
|
326
339
|
### 使用内置终端 Agent
|
|
327
340
|
|
|
328
341
|
```bash
|
|
@@ -356,6 +369,7 @@ memcode
|
|
|
356
369
|
| 启动共享 HTTP MCP 和 Dashboard | `memorix background start` |
|
|
357
370
|
| 前台调试 HTTP MCP | `memorix serve-http --port 3211` |
|
|
358
371
|
| 直接检查或管理记忆 | `memorix memory`、`memorix reasoning`、`memorix session`、`memorix ingest` |
|
|
372
|
+
| 使用交互式终端记忆控制台 | `memorix workbench` |
|
|
359
373
|
| 使用内置终端 Agent | `memorix` 或 `memcode` |
|
|
360
374
|
| 运行编排式 subagent 工作 | `memorix orchestrate --goal "..."` |
|
|
361
375
|
|
package/TEAM.md
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
# Memorix Team Protocol
|
|
2
|
-
|
|
1
|
+
# Memorix Team Protocol
|
|
2
|
+
|
|
3
3
|
Rules for project-scoped autonomous-agent coordination via Memorix team tools. The Team page is an **Agent Team status surface** — it shows explicitly joined autonomous agents, open tasks, locks, messages, handoffs, and what needs attention. It is NOT an organization backend, staffing admin tool, or automatic chat room between separate IDE windows.
|
|
4
4
|
|
|
5
5
|
Only agents that are intentionally participating in team/task/message/lock workflows need this protocol. Memory-only sessions should stay lightweight and do not need a team identity.
|
|
6
6
|
|
|
7
7
|
For real autonomous multi-agent development, prefer `memorix orchestrate`: it launches and supervises CLI agent workers through Memorix tasks, context, verification, and fix loops. The team tools support that workflow; they should not be interpreted as proof that unrelated IDE conversation windows can autonomously contact each other.
|
|
8
|
-
|
|
9
|
-
There are 4 team tools, each with an `action` parameter:
|
|
10
|
-
|
|
11
|
-
- `team_manage` — action: join / leave / status
|
|
12
|
-
- `team_file_lock` — action: lock / unlock / status
|
|
13
|
-
- `team_task` — action: create / claim / complete / list
|
|
14
|
-
- `team_message` — action: send / broadcast / inbox
|
|
15
|
-
|
|
8
|
+
|
|
9
|
+
There are 4 team tools, each with an `action` parameter:
|
|
10
|
+
|
|
11
|
+
- `team_manage` — action: join / leave / status
|
|
12
|
+
- `team_file_lock` — action: lock / unlock / status
|
|
13
|
+
- `team_task` — action: create / claim / complete / list
|
|
14
|
+
- `team_message` — action: send / broadcast / inbox
|
|
15
|
+
|
|
16
16
|
## RULE 1: Start Lightweight, Join Team Explicitly
|
|
17
17
|
|
|
18
18
|
At the **beginning of every memory session**, before project-scoped memory work:
|
|
@@ -25,82 +25,82 @@ At the **beginning of every memory session**, before project-scoped memory work:
|
|
|
25
25
|
4. Store the returned **agent ID** only after an explicit join — you will need it for subsequent team operations.
|
|
26
26
|
5. Call `memorix_poll` with your agent ID to see current autonomous agents, check available tasks, and read unread messages.
|
|
27
27
|
6. If you need a custom role or capabilities, use explicit `team_manage(join)` so the role overrides the default mapping cleanly.
|
|
28
|
-
|
|
29
|
-
## RULE 2: Lock Before Edit
|
|
30
|
-
|
|
31
|
-
Before modifying any file that another agent might also be working on:
|
|
32
|
-
|
|
33
|
-
1. Call `team_file_lock` with `action: "status"` and the file path to check if it is already locked.
|
|
34
|
-
2. If unlocked, call `team_file_lock` with `action: "lock"`, the file path, and your agent ID.
|
|
35
|
-
3. If locked by another agent, **do not edit that file**. Either:
|
|
36
|
-
- Work on a different file.
|
|
37
|
-
- Send a `request` message to the lock owner asking them to release it.
|
|
38
|
-
- Wait and re-check later.
|
|
39
|
-
4. When you are done editing, call `team_file_lock` with `action: "unlock"` to release the lock.
|
|
40
|
-
|
|
41
|
-
**Never edit a file locked by another agent.** Lock violations cause merge conflicts and data loss.
|
|
42
|
-
|
|
43
|
-
Locks auto-expire after 10 minutes. If you hold a lock for extended work, re-lock periodically to refresh the TTL.
|
|
44
|
-
|
|
45
|
-
## RULE 3: Use Tasks for Work Coordination
|
|
46
|
-
|
|
47
|
-
When the user assigns work that involves multiple agents or multiple steps:
|
|
48
|
-
|
|
49
|
-
1. Call `team_task` with `action: "create"` to break the work into discrete tasks with clear descriptions.
|
|
50
|
-
2. Use `deps` to declare dependencies between tasks (a task cannot be claimed until its dependencies are completed).
|
|
51
|
-
3. Call `team_task` with `action: "claim"` to assign a task to yourself before starting work on it.
|
|
52
|
-
4. Call `team_task` with `action: "complete"` and a `result` summary when the task is done.
|
|
53
|
-
5. Call `team_task` with `action: "list"` to see overall progress and find available work.
|
|
54
|
-
|
|
55
|
-
Rules:
|
|
56
|
-
- Only claim tasks whose dependencies are all completed.
|
|
57
|
-
- Only one agent may claim a given task.
|
|
58
|
-
- If you cannot complete a claimed task, leave the team so the task returns to pending and another agent can pick it up.
|
|
59
|
-
|
|
60
|
-
## RULE 4: Communication Protocol
|
|
61
|
-
|
|
62
|
-
Use `team_message` with `action: "send"` for direct messages and `action: "broadcast"` for announcements. Message types and their intended use:
|
|
63
|
-
|
|
64
|
-
| Type | Use |
|
|
65
|
-
|------|-----|
|
|
66
|
-
| `request` | Ask another agent to do something, release a lock, or provide information. |
|
|
67
|
-
| `response` | Reply to a prior request. |
|
|
68
|
-
| `info` | Share context: discoveries, status updates, warnings about tricky code. |
|
|
69
|
-
| `announcement` | Broadcast to all agents: major state changes, deployment events, breaking changes. |
|
|
70
|
-
| `contract` | Propose or agree on a division of work. Both agents should acknowledge. |
|
|
71
|
-
| `error` | Report a blocking issue that requires another agent's attention. |
|
|
72
|
-
|
|
73
|
-
Rules:
|
|
74
|
-
- `action: "send"` requires the full UUID of the target agent. Get it from `team_manage` with `action: "status"`.
|
|
75
|
-
- Check your inbox (`action: "inbox"`) at least once before starting new work and once before ending a session.
|
|
76
|
-
- Keep message content under 10KB. Be concise and actionable.
|
|
77
|
-
|
|
78
|
-
## RULE 5: Leave on Session End
|
|
79
|
-
|
|
80
|
-
When the session is ending:
|
|
81
|
-
|
|
82
|
-
1. Call `team_file_lock` with `action: "unlock"` for every file you have locked, or they will remain locked until TTL expiry (10 min).
|
|
83
|
-
2. If you have in-progress tasks you cannot finish, leave them — leaving releases your tasks back to pending.
|
|
84
|
-
3. Call `team_manage` with `action: "leave"` and your agent ID. This marks you inactive, releases all your locks, and clears your inbox.
|
|
85
|
-
|
|
86
|
-
## RULE 6: Conflict Prevention
|
|
87
|
-
|
|
88
|
-
- **Check before acting.** Always check team status and file lock status before starting work to understand the current state.
|
|
89
|
-
- **Communicate before diverging.** If you plan to refactor shared code, broadcast an `announcement` first so other agents can save their work.
|
|
90
|
-
- **Respect lock ownership.** The lock holder has exclusive write access. No exceptions.
|
|
91
|
-
- **Prefer small, scoped changes.** Large cross-cutting changes increase conflict risk. Coordinate via tasks and messages if a change touches files other agents are working on.
|
|
92
|
-
- **Do not duplicate work.** Check the task list before creating new tasks. If a similar task exists, claim it instead of creating a duplicate.
|
|
93
|
-
|
|
94
|
-
## Summary of Required Calls
|
|
95
|
-
|
|
96
|
-
| When | Tool Call |
|
|
97
|
-
|------|-----------|
|
|
28
|
+
|
|
29
|
+
## RULE 2: Lock Before Edit
|
|
30
|
+
|
|
31
|
+
Before modifying any file that another agent might also be working on:
|
|
32
|
+
|
|
33
|
+
1. Call `team_file_lock` with `action: "status"` and the file path to check if it is already locked.
|
|
34
|
+
2. If unlocked, call `team_file_lock` with `action: "lock"`, the file path, and your agent ID.
|
|
35
|
+
3. If locked by another agent, **do not edit that file**. Either:
|
|
36
|
+
- Work on a different file.
|
|
37
|
+
- Send a `request` message to the lock owner asking them to release it.
|
|
38
|
+
- Wait and re-check later.
|
|
39
|
+
4. When you are done editing, call `team_file_lock` with `action: "unlock"` to release the lock.
|
|
40
|
+
|
|
41
|
+
**Never edit a file locked by another agent.** Lock violations cause merge conflicts and data loss.
|
|
42
|
+
|
|
43
|
+
Locks auto-expire after 10 minutes. If you hold a lock for extended work, re-lock periodically to refresh the TTL.
|
|
44
|
+
|
|
45
|
+
## RULE 3: Use Tasks for Work Coordination
|
|
46
|
+
|
|
47
|
+
When the user assigns work that involves multiple agents or multiple steps:
|
|
48
|
+
|
|
49
|
+
1. Call `team_task` with `action: "create"` to break the work into discrete tasks with clear descriptions.
|
|
50
|
+
2. Use `deps` to declare dependencies between tasks (a task cannot be claimed until its dependencies are completed).
|
|
51
|
+
3. Call `team_task` with `action: "claim"` to assign a task to yourself before starting work on it.
|
|
52
|
+
4. Call `team_task` with `action: "complete"` and a `result` summary when the task is done.
|
|
53
|
+
5. Call `team_task` with `action: "list"` to see overall progress and find available work.
|
|
54
|
+
|
|
55
|
+
Rules:
|
|
56
|
+
- Only claim tasks whose dependencies are all completed.
|
|
57
|
+
- Only one agent may claim a given task.
|
|
58
|
+
- If you cannot complete a claimed task, leave the team so the task returns to pending and another agent can pick it up.
|
|
59
|
+
|
|
60
|
+
## RULE 4: Communication Protocol
|
|
61
|
+
|
|
62
|
+
Use `team_message` with `action: "send"` for direct messages and `action: "broadcast"` for announcements. Message types and their intended use:
|
|
63
|
+
|
|
64
|
+
| Type | Use |
|
|
65
|
+
|------|-----|
|
|
66
|
+
| `request` | Ask another agent to do something, release a lock, or provide information. |
|
|
67
|
+
| `response` | Reply to a prior request. |
|
|
68
|
+
| `info` | Share context: discoveries, status updates, warnings about tricky code. |
|
|
69
|
+
| `announcement` | Broadcast to all agents: major state changes, deployment events, breaking changes. |
|
|
70
|
+
| `contract` | Propose or agree on a division of work. Both agents should acknowledge. |
|
|
71
|
+
| `error` | Report a blocking issue that requires another agent's attention. |
|
|
72
|
+
|
|
73
|
+
Rules:
|
|
74
|
+
- `action: "send"` requires the full UUID of the target agent. Get it from `team_manage` with `action: "status"`.
|
|
75
|
+
- Check your inbox (`action: "inbox"`) at least once before starting new work and once before ending a session.
|
|
76
|
+
- Keep message content under 10KB. Be concise and actionable.
|
|
77
|
+
|
|
78
|
+
## RULE 5: Leave on Session End
|
|
79
|
+
|
|
80
|
+
When the session is ending:
|
|
81
|
+
|
|
82
|
+
1. Call `team_file_lock` with `action: "unlock"` for every file you have locked, or they will remain locked until TTL expiry (10 min).
|
|
83
|
+
2. If you have in-progress tasks you cannot finish, leave them — leaving releases your tasks back to pending.
|
|
84
|
+
3. Call `team_manage` with `action: "leave"` and your agent ID. This marks you inactive, releases all your locks, and clears your inbox.
|
|
85
|
+
|
|
86
|
+
## RULE 6: Conflict Prevention
|
|
87
|
+
|
|
88
|
+
- **Check before acting.** Always check team status and file lock status before starting work to understand the current state.
|
|
89
|
+
- **Communicate before diverging.** If you plan to refactor shared code, broadcast an `announcement` first so other agents can save their work.
|
|
90
|
+
- **Respect lock ownership.** The lock holder has exclusive write access. No exceptions.
|
|
91
|
+
- **Prefer small, scoped changes.** Large cross-cutting changes increase conflict risk. Coordinate via tasks and messages if a change touches files other agents are working on.
|
|
92
|
+
- **Do not duplicate work.** Check the task list before creating new tasks. If a similar task exists, claim it instead of creating a duplicate.
|
|
93
|
+
|
|
94
|
+
## Summary of Required Calls
|
|
95
|
+
|
|
96
|
+
| When | Tool Call |
|
|
97
|
+
|------|-----------|
|
|
98
98
|
| Session start | `memorix_session_start` (lightweight) |
|
|
99
99
|
| Join Agent Team | `memorix_session_start(joinTeam=true)` or `team_manage(join)` |
|
|
100
100
|
| After joining | `memorix_poll` (check status + inbox) |
|
|
101
|
-
| Before editing a shared file | `team_file_lock(status)`, `team_file_lock(lock)` |
|
|
102
|
-
| After editing | `team_file_lock(unlock)` |
|
|
103
|
-
| Starting a unit of work | `team_task(claim)` or `team_task(create)` + `team_task(claim)` |
|
|
104
|
-
| Finishing a unit of work | `team_task(complete)` |
|
|
105
|
-
| Need to coordinate | `team_message(send)` or `team_message(broadcast)` |
|
|
106
|
-
| Session end | `team_file_lock(unlock)` (all), `team_manage(leave)` |
|
|
101
|
+
| Before editing a shared file | `team_file_lock(status)`, `team_file_lock(lock)` |
|
|
102
|
+
| After editing | `team_file_lock(unlock)` |
|
|
103
|
+
| Starting a unit of work | `team_task(claim)` or `team_task(create)` + `team_task(claim)` |
|
|
104
|
+
| Finishing a unit of work | `team_task(complete)` |
|
|
105
|
+
| Need to coordinate | `team_message(send)` or `team_message(broadcast)` |
|
|
106
|
+
| Session end | `team_file_lock(unlock)` (all), `team_manage(leave)` |
|