5.4 KiB
Memory Tools (via @alkdev/open-memory plugin)
You have access to two tools for managing your context and accessing session history:
memory({tool: "...", args: {...}})
Read-only tool for introspecting your session history and context state. Available operations:
memory({tool: "help"})— full reference with examplesmemory({tool: "summary"})— quick counts of projects, sessions, messages, todosmemory({tool: "sessions"})— list recent sessions (useful for finding past work)memory({tool: "children", args: {sessionId: "ses_..."}})— list sub-agent sessions spawned from a parentmemory({tool: "messages", args: {sessionId: "..."}})— read a session's conversationmemory({tool: "messages", args: {sessionId: "...", role: "assistant"}})— read only assistant messagesmemory({tool: "messages", args: {sessionId: "...", showTools: true}})— include tool-call outputmemory({tool: "message", args: {messageId: "msg_..."}})— read a single message by IDmemory({tool: "search", args: {query: "..."}})— search across all conversationsmemory({tool: "compactions", args: {sessionId: "..."}})— view compaction checkpointsmemory({tool: "context"})— check your current context window usage
memory_compact()
Trigger compaction on the current session. This summarizes the conversation so far to free context space.
When to use memory_compact:
- When context is above 80% (check with
memory({tool: "context"})) - When you notice you're losing track of earlier conversation details
- At natural breakpoints in multi-step tasks (after completing a subtask, before starting a new one)
- When the system prompt shows a yellow/red/critical context warning
- Proactively, rather than waiting for automatic compaction at 92%
When NOT to use memory_compact:
- When context is below 50% (it wastes a compaction cycle)
- In the middle of a complex edit that you need immediate context for
- When the task is nearly complete (just finish the task instead)
Compaction preserves your most important context in a structured summary — you will continue the session with the summary as your starting point.
Worktree Tool (via @alkimiadev/open-coordinator plugin)
You have access to the worktree tool for git worktree management and session coordination. Call with {action, args}:
Coordinator Operations (available when session is not spawned by another session)
worktree({action: "list"})— List git worktreesworktree({action: "dashboard"})— Worktree dashboard with session infoworktree({action: "spawn", args: {tasks: [...], prompt: "..."}})— Spawn parallel worktrees + sessionsworktree({action: "sessions"})— Query spawned session statusworktree({action: "message", args: {sessionID: "...", message: "..."}})— Message a sessionworktree({action: "abort", args: {sessionID: "..."}})— Abort a sessionworktree({action: "cleanup", args: {action: "remove", pathOrBranch: "..."}})— Remove worktreeworktree({action: "help"})— Show all available operations
Implementation Operations (available when session is spawned by a coordinator)
worktree({action: "current"})— Show your worktree mappingworktree({action: "notify", args: {message: "...", level: "info|blocking"}})— Report to coordinatorworktree({action: "status"})— Show worktree git status
The plugin auto-injects workdir for bash commands when the session is mapped to a worktree.
Project: @alkdev/taskgraph
Pure TypeScript library for DAG task graph analysis, risk scoring, cost-benefit math, and YAML frontmatter parsing. Built on graphology. Dual-licensed MIT / Apache-2.0.
Commands
npm run build— Build with tsup (ESM + CJS + declarations)npm run lint— Type-check withtsc --noEmitnpm test— Run tests with vitestnpm run test:watch— Watch modenpm run test:coverage— Coverage report (v8)
Architecture
See docs/architecture/ for the full SDD. Key points:
- Public API boundary:
src/index.tsis the sole entry point. Internal graphology details are not re-exported. Only add exports toindex.ts— never import from internal paths. - Edge convention: prerequisite → dependent (if B depends on A, edge is A → B).
- Edge keys: deterministic
${source}->${target}per ADR-006. - Schemas: TypeBox via
@alkdev/typebox. All runtime schemas and types are defined insrc/schema/. No Zod. - Validation: throws on construction errors (duplicates, missing nodes).
validate*()methods return error arrays instead of throwing. - No comments in source: Do not add comments to code unless explicitly asked.
Source Layout
src/
index.ts — Public API surface (all exports)
graph/
construction.ts — TaskGraph class
queries.ts — Internal query helpers
mutation.ts — Internal mutation helpers
validation.ts — Internal validation helpers
analysis/
critical-path.ts, bottleneck.ts, parallel-groups.ts
risk.ts, cost-benefit.ts, decompose.ts, defaults.ts
frontmatter/
parse.ts, serialize.ts, file-io.ts (Node.js only)
schema/
enums.ts, task.ts, graph.ts, results.ts
error/
index.ts — Error classes + validation types
Dependencies
Runtime: graphology, graphology-*, yaml, @alkdev/typebox. No native addons.
Dev: tsup, typescript, vitest, @vitest/coverage-v8.