@theihtisham/agent-shadow-brain 7.0.0 → 7.1.3
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 +31 -0
- package/README.md +47 -385
- package/dist/activity-cli.d.ts +3 -0
- package/dist/activity-cli.d.ts.map +1 -0
- package/dist/activity-cli.js +78 -0
- package/dist/activity-cli.js.map +1 -0
- package/dist/adapters/index.d.ts +2 -1
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +3 -2
- package/dist/adapters/index.js.map +1 -1
- package/dist/brain/activity-journal.d.ts +82 -0
- package/dist/brain/activity-journal.d.ts.map +1 -0
- package/dist/brain/activity-journal.js +314 -0
- package/dist/brain/activity-journal.js.map +1 -0
- package/dist/brain/activity-reporting.d.ts +14 -0
- package/dist/brain/activity-reporting.d.ts.map +1 -0
- package/dist/brain/activity-reporting.js +17 -0
- package/dist/brain/activity-reporting.js.map +1 -0
- package/dist/brain/auto-update.js +1 -1
- package/dist/brain/brain-portability.js +1 -1
- package/dist/brain/client-integrations.d.ts +61 -0
- package/dist/brain/client-integrations.d.ts.map +1 -0
- package/dist/brain/client-integrations.js +98 -0
- package/dist/brain/client-integrations.js.map +1 -0
- package/dist/brain/context-assembly.d.ts +76 -0
- package/dist/brain/context-assembly.d.ts.map +1 -0
- package/dist/brain/context-assembly.js +305 -0
- package/dist/brain/context-assembly.js.map +1 -0
- package/dist/brain/feature-settings.d.ts +58 -0
- package/dist/brain/feature-settings.d.ts.map +1 -0
- package/dist/brain/feature-settings.js +241 -0
- package/dist/brain/feature-settings.js.map +1 -0
- package/dist/brain/global-brain.d.ts +7 -0
- package/dist/brain/global-brain.d.ts.map +1 -1
- package/dist/brain/global-brain.js +19 -4
- package/dist/brain/global-brain.js.map +1 -1
- package/dist/brain/mcp-server.d.ts +23 -1
- package/dist/brain/mcp-server.d.ts.map +1 -1
- package/dist/brain/mcp-server.js +224 -24
- package/dist/brain/mcp-server.js.map +1 -1
- package/dist/brain/mcp-stdio.d.ts +12 -0
- package/dist/brain/mcp-stdio.d.ts.map +1 -0
- package/dist/brain/mcp-stdio.js +134 -0
- package/dist/brain/mcp-stdio.js.map +1 -0
- package/dist/brain/memory-annotations.d.ts +97 -0
- package/dist/brain/memory-annotations.d.ts.map +1 -0
- package/dist/brain/memory-annotations.js +388 -0
- package/dist/brain/memory-annotations.js.map +1 -0
- package/dist/brain/memory-graph.d.ts.map +1 -1
- package/dist/brain/memory-graph.js +12 -23
- package/dist/brain/memory-graph.js.map +1 -1
- package/dist/brain/memory-sources.d.ts +8 -0
- package/dist/brain/memory-sources.d.ts.map +1 -0
- package/dist/brain/memory-sources.js +27 -0
- package/dist/brain/memory-sources.js.map +1 -0
- package/dist/brain/orchestrator.js +1 -1
- package/dist/brain/subconscious.d.ts +21 -24
- package/dist/brain/subconscious.d.ts.map +1 -1
- package/dist/brain/subconscious.js +82 -218
- package/dist/brain/subconscious.js.map +1 -1
- package/dist/brain/task-workflow.d.ts +22 -0
- package/dist/brain/task-workflow.d.ts.map +1 -0
- package/dist/brain/task-workflow.js +182 -0
- package/dist/brain/task-workflow.js.map +1 -0
- package/dist/brain/workflow-skills.d.ts +86 -0
- package/dist/brain/workflow-skills.d.ts.map +1 -0
- package/dist/brain/workflow-skills.js +514 -0
- package/dist/brain/workflow-skills.js.map +1 -0
- package/dist/cli.js +21 -2
- package/dist/cli.js.map +1 -1
- package/dist/context-cli.d.ts +3 -0
- package/dist/context-cli.d.ts.map +1 -0
- package/dist/context-cli.js +56 -0
- package/dist/context-cli.js.map +1 -0
- package/dist/curation-cli.d.ts +4 -0
- package/dist/curation-cli.d.ts.map +1 -0
- package/dist/curation-cli.js +118 -0
- package/dist/curation-cli.js.map +1 -0
- package/dist/dashboard/live-workspace-html.d.ts +2 -0
- package/dist/dashboard/live-workspace-html.d.ts.map +1 -0
- package/dist/dashboard/live-workspace-html.js +893 -0
- package/dist/dashboard/live-workspace-html.js.map +1 -0
- package/dist/dashboard/server.d.ts +1 -0
- package/dist/dashboard/server.d.ts.map +1 -1
- package/dist/dashboard/server.js +53 -18
- package/dist/dashboard/server.js.map +1 -1
- package/dist/dashboard/v6-dashboard-html.d.ts +1 -1
- package/dist/dashboard/v6-dashboard-html.d.ts.map +1 -1
- package/dist/dashboard/v6-dashboard-html.js +7 -29
- package/dist/dashboard/v6-dashboard-html.js.map +1 -1
- package/dist/dashboard/workspace-api.d.ts +16 -0
- package/dist/dashboard/workspace-api.d.ts.map +1 -0
- package/dist/dashboard/workspace-api.js +309 -0
- package/dist/dashboard/workspace-api.js.map +1 -0
- package/dist/dashboard/workspace-html.d.ts +2 -0
- package/dist/dashboard/workspace-html.d.ts.map +1 -0
- package/dist/dashboard/workspace-html.js +2132 -0
- package/dist/dashboard/workspace-html.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -1
- package/dist/integration-cli.d.ts +3 -0
- package/dist/integration-cli.d.ts.map +1 -0
- package/dist/integration-cli.js +14 -0
- package/dist/integration-cli.js.map +1 -0
- package/dist/types.d.ts +12 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/workflow-cli.d.ts +3 -0
- package/dist/workflow-cli.d.ts.map +1 -0
- package/dist/workflow-cli.js +100 -0
- package/dist/workflow-cli.js.map +1 -0
- package/docs/WORKFLOW_INTEGRATION.md +105 -0
- package/docs/WORKSPACE.md +111 -0
- package/docs/assets/context-flow-v7.2.png +0 -0
- package/docs/assets/live-v7.1.3.png +0 -0
- package/docs/assets/memory-detail-v7.1.3.png +0 -0
- package/docs/assets/overview-v7.1.3.png +0 -0
- package/docs/assets/workspace-graph-v7.2.png +0 -0
- package/docs/assets/workspace-overview-v7.2.png +0 -0
- package/docs/launch/RELEASE_NOTES_v7.1.0.md +32 -0
- package/docs/launch/RELEASE_NOTES_v7.1.3.md +40 -0
- package/docs/launch/RELEASE_NOTES_v7.2.0.md +24 -0
- package/package.json +112 -207
- package/skills/shadow-debug/SKILL.md +16 -0
- package/skills/shadow-implement/SKILL.md +16 -0
- package/skills/shadow-release/SKILL.md +16 -0
- package/skills/shadow-research/SKILL.md +12 -0
- package/skills/shadow-review/SKILL.md +14 -0
- package/skills/shadow-workflow/SKILL.md +31 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,36 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [7.1.3] - 2026-11-11 - Live activity and curated memory
|
|
4
|
+
|
|
5
|
+
This release follows 7.2.0 using the version number requested by the maintainer. Install `@7.1.3` explicitly when upgrading from 7.2.0.
|
|
6
|
+
|
|
7
|
+
- Added a live portal with an event-driven session network, measured tool charts, host-reported phases, timeline, pause, and reduced motion.
|
|
8
|
+
- Added a bounded cross-process activity journal, cursor and reset detection, metadata-only MCP instrumentation, host reporting, and separate recording and visibility controls.
|
|
9
|
+
- Added memory review, typed relations, audit history, and project-scoped curation through the workspace and CLI.
|
|
10
|
+
- Excluded archived, contested, and superseded memories before context ranking; briefings refresh when reviews change.
|
|
11
|
+
- Added standard MCP stdio, client capability checks, project skill diagnostics, and generated launch configuration.
|
|
12
|
+
- Improved workspace navigation, source coverage, graph filtering, context explanations, dark mode, and mobile layouts.
|
|
13
|
+
- Fixed empty-project graph scope, preservation of pending writes during read refresh, and per-client attach/detach targeting.
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
## [7.2.0] - 2026-11-11 - Context Packs and Workspace
|
|
17
|
+
|
|
18
|
+
- Make the local workspace the default dashboard with overview, searchable memories, graph, context, and feature controls. Keep the previous dashboard at `/advanced`.
|
|
19
|
+
- Build size-bounded, project-scoped context packs with ranked memory selection, duplicate handling, recorded source provenance, and selection explanations.
|
|
20
|
+
- Use context packs for session briefings. Key cached results to the task and current settings, and check enablement before reading or returning a briefing.
|
|
21
|
+
- Persist four validated feature settings for context assembly, explicit cross-project context, automatic briefings, and dashboard activity delivery.
|
|
22
|
+
- Add `context-pack` and `features list|set` commands, read-only `context_pack` and `feature_flags` MCP tools, and public context and settings APIs.
|
|
23
|
+
- Refresh the README and workspace guide with a concept illustration and dashboard screenshots.
|
|
24
|
+
|
|
25
|
+
## [7.1.0] - 2026-11-11 - Focused Workflows and Portable Skills
|
|
26
|
+
|
|
27
|
+
- Bundle six reusable skills for proportionate planning, implementation, diagnosis, review, research, and release work.
|
|
28
|
+
- Add project-local skill installation for Codex, Claude Code, OpenCode, DeepSeek Harness, and compatible portable clients. Preview by default; preserve user instructions, reject conflicting local edits and stale plans, validate paths, and back up managed updates.
|
|
29
|
+
- Add `skills list`, `skills show`, `skills targets`, `skills install`, and `workflow analyze` CLI commands.
|
|
30
|
+
- Add read-only `workflow_analyze` and `workflow_skills` MCP tools and public library APIs.
|
|
31
|
+
- Respect plan-only, diagnosis-only, and review-only scope in advisory routing. Add explicit task, mode, and complexity overrides; no provider calls or automatic task execution.
|
|
32
|
+
- Verify skill packaging, fresh-consumer installation, safe update behavior, and representative task scenarios.
|
|
33
|
+
|
|
3
34
|
|
|
4
35
|
## [7.0.0] - 2026-11-11 - Durable Memory and Explained Recall
|
|
5
36
|
|
package/README.md
CHANGED
|
@@ -1,428 +1,90 @@
|
|
|
1
1
|
# Agent Shadow Brain
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Agent Shadow Brain gives coding agents a shared local memory and a workspace you can inspect. Keep project decisions and sources together, review what is still useful, and build focused context for the next task. The live portal shows recorded sessions, tool calls, and host-reported task phases.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+

|
|
6
6
|
|
|
7
|
+
*Concept illustration of the memory and context flow.*
|
|
7
8
|
|
|
8
|
-
|
|
9
|
+
## Get started
|
|
9
10
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
## What's New in 7.0.0
|
|
13
|
-
|
|
14
|
-
- **Durable multi-agent memory.** Saves lock, reload, and merge the latest store so independent agents cannot replace each other's new memories. Queued writes acknowledge success after persistence. Failed operations remain retryable and visible in storage health.
|
|
15
|
-
- **Explainable recall.** Results include matched keywords, score components, and identities reporting the same normalized content within the same project and category. Unrelated notes no longer inflate scores. Scores are ranking heuristics, not probabilities of truth or proof of independent verification.
|
|
16
|
-
- **Storage diagnostics.** Use `shadow-brain storage-health --json` or MCP `global_storage_health` to inspect errors and pending operations. Invalid or unsupported stores fail explicitly and remain unchanged.
|
|
17
|
-
- **Safer setup and packaging.** Installation no longer edits agent settings. Help, version, and memory diagnostics do not load provider configuration. Dependencies are refreshed, activity-log text is escaped, and package tests install a real tarball into a fresh consumer project.
|
|
18
|
-
|
|
19
|
-
### Upgrade from 6.x
|
|
20
|
-
|
|
21
|
-
Use Node.js 22.12+ within 22.x, Node 24.x, or Node 26+. Back up your existing `global.json` before upgrading and stop older Shadow Brain writers; older versions do not participate in the new lock protocol. The schema remains version 1. Start integrations explicitly using the existing setup/attach commands after installation.
|
|
22
|
-
|
|
23
|
-
`writeSync()` remains an in-memory operation; call `await brain.sync()` for durable persistence. `await brain.write()` resolves after the background sync or an explicit sync; a false result means persistence failed or the queue was full. Failed accepted operations remain pending for retry. Recall reads the process snapshot, refreshed by sync; it is not an instantaneous cross-process read.
|
|
24
|
-
|
|
25
|
-
### New commands
|
|
26
|
-
|
|
27
|
-
```bash
|
|
28
|
-
shadow-brain storage-health --json
|
|
29
|
-
shadow-brain storage-health --db ./global.json --json
|
|
30
|
-
shadow-brain recall-explain "deployment rollback" --limit 5
|
|
31
|
-
shadow-brain recall-explain "database migration" --project . --min-confidence 0.4
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
`storage-health` validates readability and schema, reports JSON even on failure, and exits with code 1 for an invalid store. It does not repair or rewrite an existing store; when checking a missing store it may create its parent directory. `lastSuccessfulSync` describes the current process only. The MCP health tool inspects existing process state without initializing or flushing it.
|
|
35
|
-
|
|
36
|
-
The library exports `GlobalBrain`, `getGlobalBrain`, and their public types:
|
|
37
|
-
|
|
38
|
-
```js
|
|
39
|
-
import { getGlobalBrain } from '@theihtisham/agent-shadow-brain';
|
|
40
|
-
const brain = getGlobalBrain({ dbPath: './global.json' });
|
|
41
|
-
await brain.init();
|
|
42
|
-
console.log(brain.recallScored({ keywords: ['deployment'], limit: 5 }));
|
|
43
|
-
console.log(brain.getStorageHealth());
|
|
44
|
-
await brain.shutdown();
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
Details: [release notes](docs/launch/RELEASE_NOTES_v7.0.0.md).
|
|
48
|
-
|
|
49
|
-
## Earlier dashboard features
|
|
50
|
-
|
|
51
|
-
- **Simple by default, Advanced on demand.** The dashboard opens with eight plain-English tabs (Home, Brain Map, Memories, Ask the Brain, Activity, Connected Tools, Brain Health, Settings). Flip to Advanced to reveal every feature — nothing was removed, just tidied.
|
|
52
|
-
- **Brain Map.** An interactive graph of everything the brain remembers — memories, projects, tools, and tags — sized by importance (PageRank) and linked by shared context. Zoom, pan, click a node for details, and watch it grow live as new memories arrive.
|
|
53
|
-
- **Realtime activity.** Memory writes, reflections, and tool events stream live over WebSocket instead of polling, with a live pulse on Home.
|
|
54
|
-
- **Live Network.** A refreshed animation of your tools talking to the brain, with flowing signal pulses.
|
|
55
|
-
- **Two-way knowledge seeding.** Quick-Save captures knowledge in one click; "Hand to Agent" generates a ready briefing to pass context back to any tool.
|
|
56
|
-
- **Plain-language everywhere.** Cryptic feature names rewritten (e.g. Calibration → Accuracy, Pre-Mortem → Risk Check, Tokens → Cost & Usage), each with a hover description.
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
## What It Actually Does
|
|
60
|
-
|
|
61
|
-
- Stores cross-project and cross-agent memories in a local JSON brain at `~/.shadow-brain/global.json`.
|
|
62
|
-
- Recalls memories by project, agent, category, and keywords.
|
|
63
|
-
- Generates source-backed resume packs for fresh sessions, account switches, context compaction, and handoffs.
|
|
64
|
-
- Audits memory quality: source coverage, stale entries, duplicates, low-quality notes, recall health.
|
|
65
|
-
- Creates verified memory seed drafts from dashboard/API, then requires user, agent, or dual approval before writing to durable memory.
|
|
66
|
-
- Exports JSONL rows for evals, distillation, or local fine-tuning pipelines.
|
|
67
|
-
- Provides CLI, dashboard API, and MCP tool surfaces.
|
|
68
|
-
- Includes safety helpers such as hook audit, detach, and action firewall checks.
|
|
69
|
-
- Works without telemetry and without an API key for local memory features.
|
|
70
|
-
|
|
71
|
-
## What It Does Not Claim
|
|
72
|
-
|
|
73
|
-
- It does not secretly train GPT, Claude, Gemini, or any remote model.
|
|
74
|
-
- It does not guarantee perfect recall.
|
|
75
|
-
- It does not replace project docs, tests, source control, or human review.
|
|
76
|
-
- It does not make every listed agent automatically available. Agent support depends on local installation and hook/config compatibility.
|
|
77
|
-
- It does not publish or sync data unless you explicitly use export, sync, or other sharing commands.
|
|
78
|
-
|
|
79
|
-
## Install
|
|
80
|
-
|
|
81
|
-
```bash
|
|
82
|
-
npm install -g @theihtisham/agent-shadow-brain
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
CLI binaries:
|
|
86
|
-
|
|
87
|
-
```bash
|
|
88
|
-
shadow-brain --help
|
|
89
|
-
asb --help
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
You can also run without global install:
|
|
93
|
-
|
|
94
|
-
```bash
|
|
95
|
-
npx @theihtisham/agent-shadow-brain@latest --help
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
## Safe First Run
|
|
99
|
-
|
|
100
|
-
Start by auditing before attaching hooks:
|
|
101
|
-
|
|
102
|
-
```bash
|
|
103
|
-
shadow-brain audit-hooks .
|
|
104
|
-
shadow-brain live-brain status .
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
Only attach after you review what will be changed:
|
|
108
|
-
|
|
109
|
-
```bash
|
|
110
|
-
shadow-brain attach-all .
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
Detach later if needed:
|
|
114
|
-
|
|
115
|
-
```bash
|
|
116
|
-
shadow-brain detach-all .
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
## v6.0.3: Live Brain
|
|
120
|
-
|
|
121
|
-
The 6.0.3 release focuses on practical long-memory improvement for agents.
|
|
122
|
-
|
|
123
|
-
### Live Brain Status
|
|
124
|
-
|
|
125
|
-
```bash
|
|
126
|
-
shadow-brain live-brain status .
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
Shows:
|
|
130
|
-
|
|
131
|
-
- memory count
|
|
132
|
-
- average memory quality
|
|
133
|
-
- source coverage
|
|
134
|
-
- stale memories
|
|
135
|
-
- duplicate clusters
|
|
136
|
-
- recall eval score
|
|
137
|
-
- recommended cleanup actions
|
|
138
|
-
|
|
139
|
-
JSON output:
|
|
140
|
-
|
|
141
|
-
```bash
|
|
142
|
-
shadow-brain live-brain status . --json
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
### Agent Briefing
|
|
146
|
-
|
|
147
|
-
Generate a markdown briefing for a fresh agent session:
|
|
148
|
-
|
|
149
|
-
```bash
|
|
150
|
-
shadow-brain live-brain brief . -o SHADOW_BRAIN_AGENT_BRIEF.md
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
The briefing includes:
|
|
154
|
-
|
|
155
|
-
- rules for agents
|
|
156
|
-
- top source-backed memories
|
|
157
|
-
- memory warnings
|
|
158
|
-
- recall health
|
|
159
|
-
- commands agents should run next
|
|
160
|
-
|
|
161
|
-
### Recall Eval
|
|
162
|
-
|
|
163
|
-
Check whether the brain can retrieve useful memories for common agent tasks:
|
|
164
|
-
|
|
165
|
-
```bash
|
|
166
|
-
shadow-brain live-brain eval .
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
Custom eval queries use pipe separators:
|
|
170
|
-
|
|
171
|
-
```bash
|
|
172
|
-
shadow-brain live-brain eval . --queries "current blocker|do not repeat|verified command"
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
### Memory Hygiene
|
|
176
|
-
|
|
177
|
-
List concrete cleanup and learning actions:
|
|
178
|
-
|
|
179
|
-
```bash
|
|
180
|
-
shadow-brain live-brain hygiene .
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
This highlights missing sources, stale memories, duplicates, weak recall, and missing project-scoped memories.
|
|
184
|
-
|
|
185
|
-
### Training/Eval Export
|
|
186
|
-
|
|
187
|
-
Export source-backed memories as JSONL:
|
|
11
|
+
Use Node.js 22.12+ within 22.x, Node.js 24.x, or Node.js 26+.
|
|
188
12
|
|
|
189
13
|
```bash
|
|
190
|
-
|
|
14
|
+
npm install -g @theihtisham/agent-shadow-brain@7.1.3
|
|
15
|
+
shadow-brain dash . --no-analysis
|
|
191
16
|
```
|
|
192
17
|
|
|
193
|
-
|
|
18
|
+
Run the dashboard command from your project directory. It opens the local workspace and skips background project analysis. Open the printed address if the browser does not start automatically. Use a second terminal for other commands while the dashboard is running.
|
|
194
19
|
|
|
195
|
-
|
|
196
|
-
- local distillation experiments
|
|
197
|
-
- supervised fine-tuning datasets
|
|
198
|
-
- memory regression tests
|
|
20
|
+
## Watch activity as it happens
|
|
199
21
|
|
|
200
|
-
|
|
22
|
+
Open **Live** in the workspace, or add `/live` to its address. Select a session to inspect its event network, reported phases, and timeline. Charts summarize tool throughput, errors, and measured duration in the loaded window. Pause updates or reduce motion at any time.
|
|
201
23
|
|
|
202
|
-
|
|
24
|
+

|
|
203
25
|
|
|
204
|
-
|
|
26
|
+
*Running portal with scripted local MCP clients and synthetic data. Client labels in this demonstration do not prove native client installation or model connectivity.*
|
|
205
27
|
|
|
206
|
-
|
|
207
|
-
shadow-brain global recall --query "current blocker next step" --json --limit 8
|
|
208
|
-
```
|
|
28
|
+
The standalone MCP service measures calls made through it. A connected host can explicitly report phases or its own tool events; these remain labeled **Host-reported**. Activity recording stores bounded metadata, not prompts, tool arguments, or memory content. The latest 500 events are retained, with visible notices for incomplete windows.
|
|
209
29
|
|
|
210
|
-
|
|
30
|
+
## Review the context your agent uses
|
|
211
31
|
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
32
|
+
- **Overview** shows project inventory, review states, recorded-source coverage, and recent activity.
|
|
33
|
+
- **Memories** lets you inspect content, sources, review history, and links. Mark entries active, archived, or contested.
|
|
34
|
+
- **Graph** connects projects, agents, and memories, including explicit support, contradiction, and replacement links.
|
|
35
|
+
- **Context** builds a copyable project pack and explains what was selected or excluded.
|
|
36
|
+
- **Integrations** shows client capabilities, project skill-file presence, and safe local diagnostics.
|
|
37
|
+
- **Features** controls context packs, cross-project context, automatic briefings, activity visibility, and activity recording separately.
|
|
215
38
|
|
|
216
|
-
|
|
39
|
+

|
|
217
40
|
|
|
218
|
-
|
|
219
|
-
shadow-brain resume-seed . -o SHADOW_BRAIN_RESUME_SEED.md
|
|
220
|
-
```
|
|
41
|
+

|
|
221
42
|
|
|
222
|
-
|
|
43
|
+
*Workspace screenshots use synthetic memories. Recorded references and manual reviews help you check a claim; they do not establish its truth.*
|
|
223
44
|
|
|
224
|
-
|
|
225
|
-
shadow-brain timeline . --limit 30
|
|
226
|
-
```
|
|
45
|
+
Open **Advanced tools** or visit `/advanced` for the previous dashboard. [Workspace guide](docs/WORKSPACE.md)
|
|
227
46
|
|
|
228
|
-
|
|
47
|
+
## Build a context pack
|
|
229
48
|
|
|
230
49
|
```bash
|
|
231
|
-
shadow-brain
|
|
50
|
+
shadow-brain context-pack "import retry behavior" --project . --token-budget 1200
|
|
51
|
+
shadow-brain features list
|
|
52
|
+
shadow-brain features set automaticBriefing off
|
|
232
53
|
```
|
|
233
54
|
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
```bash
|
|
237
|
-
node tools/record-global-memory.mjs ^
|
|
238
|
-
--project-dir "." ^
|
|
239
|
-
--project-name "my-project" ^
|
|
240
|
-
--agent codex ^
|
|
241
|
-
--category "project.lesson" ^
|
|
242
|
-
--importance 0.8 ^
|
|
243
|
-
--tags "memory,release" ^
|
|
244
|
-
--sources "README.md,CHANGELOG.md" ^
|
|
245
|
-
--content "Keep release notes source-backed and verify npm metadata before publish."
|
|
246
|
-
```
|
|
55
|
+
A pack starts with the selected project's memories, excludes archived, contested, and superseded entries before ranking, collapses exact duplicates, and fits the rendered text to a size budget. Add `--json` to see selection reasons, sources, and recorded relationships. Cross-project context requires both an enabled feature setting and an explicit request. Token counts are estimates.
|
|
247
56
|
|
|
248
|
-
|
|
57
|
+
Automatic briefings use the same context selection. Cached briefings follow the current task, feature settings, and memory reviews. Inspect and change reviews in the workspace or with `shadow-brain curate --help`.
|
|
249
58
|
|
|
250
|
-
|
|
59
|
+
## Connect your coding client
|
|
251
60
|
|
|
252
61
|
```bash
|
|
253
|
-
shadow-brain
|
|
62
|
+
shadow-brain clients config
|
|
63
|
+
shadow-brain mcp --stdio
|
|
254
64
|
```
|
|
255
65
|
|
|
256
|
-
|
|
66
|
+
`clients config` prints a launch configuration for the installed CLI. Add it to a compatible MCP client. The stdio service provides nine read-only memory and workflow tools plus an explicit `activity_report` tool for host reports. It runs without loading provider configuration. Configure your client to use `context_pack` for curated context.
|
|
257
67
|
|
|
258
|
-
|
|
259
|
-
shadow-brain dash . --no-open --no-analysis --host 127.0.0.1 --port 7341
|
|
260
|
-
```
|
|
68
|
+
Codex, Claude Code, OpenCode, and DeepSeek Harness have documented integration paths. DeepSeek Harness requires its MCP client and filesystem skill plugins. The Integrations view checks project skill files; loading them in a host is a separate step. [Connection and activity guide](docs/WORKSPACE.md)
|
|
261
69
|
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
```text
|
|
265
|
-
http://127.0.0.1:7341
|
|
266
|
-
```
|
|
70
|
+
## Add skills to a project
|
|
267
71
|
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
It also includes:
|
|
271
|
-
|
|
272
|
-
- **Memory Browser intelligence cards** for total memories, source coverage, fresh learning, seed queue, top categories, agent coverage, and top tags.
|
|
273
|
-
- **Memory Seeder** for controlled research-to-memory workflows. Drafts stay out of the global brain until approval is complete.
|
|
274
|
-
- **Token Economy accuracy split**: current runtime agent is shown separately from historical model spend, so old Claude/Cursor spend records do not imply the dashboard is running that agent.
|
|
275
|
-
|
|
276
|
-
### Realtime Activity (new in 6.1.0)
|
|
277
|
-
|
|
278
|
-
The dashboard now streams brain activity live over its WebSocket instead of polling. Memory writes, dreams, seed drafts/commits, collisions, sub-agent spawns, and consolidation cycles appear the instant they happen.
|
|
279
|
-
|
|
280
|
-
- **Live Pulse** card on the Overview with a streaming mini-feed and an events/min rate.
|
|
281
|
-
- **Activity Log** tab with filter chips, a pulsing LIVE badge, pause/resume, clear, search, and an events/min sparkline.
|
|
282
|
-
- **Connection indicator** in the header — green when the realtime socket is live, amber while reconnecting.
|
|
283
|
-
- **Cross-process aware**: a memory written by an agent in a *different* terminal is picked up by watching `~/.shadow-brain/global.json`, so the feed reflects the whole machine, not just this process.
|
|
284
|
-
|
|
285
|
-
Polling remains as a 15-second reconciliation fallback; live events arrive in well under a second.
|
|
286
|
-
|
|
287
|
-
### Intelligence Hub — Memory Constellation (new in 6.2.0)
|
|
288
|
-
|
|
289
|
-
A new **Intelligence** tab turns the brain into an interactive graph. Every memory, project, agent, and tag is a node in a force-directed **Memory Constellation**, sized by importance (PageRank blended with each memory's own score) and linked by project, author, tags, and shared-tag relatedness.
|
|
290
|
-
|
|
291
|
-
- **Interactive**: scroll to zoom, drag to pan, click a node to focus its neighborhood and open a detail drawer; hover for a tooltip.
|
|
292
|
-
- **Filters + search** by node type (memory / project / agent / tag).
|
|
293
|
-
- **Live**: new memories pulse into the graph over the realtime stream.
|
|
294
|
-
- **Analytics strip**: source-coverage gauge, agent-contribution and category charts, tag cloud, and a recent-memory feed.
|
|
295
|
-
- Works instantly on your existing `~/.shadow-brain/global.json` — no project analysis or setup step.
|
|
296
|
-
|
|
297
|
-
Several previously sparse tabs were also rebuilt with real visualizations: **Pre-Mortem** (risk matrix + failure cards), **Attention** (weighted heat bars), **Calibration** (Brier/trust chart), **Reputation** (trust rings), **Causal Chains** (node-link DAG), and **Branch Brains** (stat cards).
|
|
298
|
-
|
|
299
|
-
Constellation API:
|
|
300
|
-
|
|
301
|
-
```text
|
|
302
|
-
GET /api/v6/memory-graph
|
|
303
|
-
```
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
Memory seeding API:
|
|
307
|
-
|
|
308
|
-
```text
|
|
309
|
-
GET /api/v6/seed-drafts
|
|
310
|
-
POST /api/v6/seed-draft
|
|
311
|
-
POST /api/v6/seed-approve
|
|
312
|
-
POST /api/v6/seed-reject
|
|
313
|
-
POST /api/v6/seed-commit
|
|
314
|
-
GET /api/v6/memory-intelligence
|
|
315
|
-
```
|
|
316
|
-
|
|
317
|
-
Useful API endpoints:
|
|
318
|
-
|
|
319
|
-
```text
|
|
320
|
-
GET/POST /api/v6/live-brain
|
|
321
|
-
GET/POST /api/v6/resume-pack
|
|
322
|
-
GET/POST /api/v6/ww2br-recall
|
|
323
|
-
GET/POST /api/v6/memory-browser
|
|
324
|
-
```
|
|
325
|
-
|
|
326
|
-
Example:
|
|
327
|
-
|
|
328
|
-
```bash
|
|
329
|
-
curl "http://127.0.0.1:7341/api/v6/live-brain?projectDir=C:/path/to/project"
|
|
330
|
-
```
|
|
331
|
-
|
|
332
|
-
## MCP Tools
|
|
333
|
-
|
|
334
|
-
The MCP server exposes memory and agent-control tools for compatible clients.
|
|
335
|
-
|
|
336
|
-
New in 6.3.0:
|
|
337
|
-
|
|
338
|
-
- `global_recall_scored` — recall with a per-memory confidence score (recency, author importance, cross-agent corroboration, prior usage, keyword relevance). Results are ranked by confidence so agents can weight memories instead of trusting every hit equally. Supports `minConfidence` to drop low-trust hits.
|
|
339
|
-
|
|
340
|
-
New in 6.0.3:
|
|
341
|
-
|
|
342
|
-
- `live_brain_status`
|
|
343
|
-
- `live_brain_brief`
|
|
344
|
-
- `live_brain_train_pack`
|
|
345
|
-
|
|
346
|
-
Existing useful tools include:
|
|
347
|
-
|
|
348
|
-
- `global_recall`
|
|
349
|
-
- `global_recall_scored`
|
|
350
|
-
- `global_stats`
|
|
351
|
-
- `global_timeline`
|
|
352
|
-
- `subconscious_inject`
|
|
353
|
-
- `agent_handoff`
|
|
354
|
-
- `firewall_check`
|
|
355
|
-
|
|
356
|
-
Start MCP from the dashboard API or existing CLI/server integration, depending on your setup.
|
|
357
|
-
|
|
358
|
-
## How Agents Should Use It
|
|
359
|
-
|
|
360
|
-
Recommended workflow for complex work:
|
|
361
|
-
|
|
362
|
-
1. Run `shadow-brain live-brain status <project>`.
|
|
363
|
-
2. Generate or read a live briefing.
|
|
364
|
-
3. Verify current project docs and source files.
|
|
365
|
-
4. Work normally.
|
|
366
|
-
5. Record only durable, source-backed lessons after proof.
|
|
367
|
-
6. Run recall evals when memory quality starts to drift.
|
|
368
|
-
|
|
369
|
-
Good memories are short, action-oriented, and source-backed:
|
|
370
|
-
|
|
371
|
-
```text
|
|
372
|
-
[lesson:release-readme-v1] Before publishing, verify package.json version, package-lock root version, README install commands, build output, and npm pack contents.
|
|
373
|
-
Sources: package.json; package-lock.json; README.md
|
|
374
|
-
Tags: release,npm,verification
|
|
375
|
-
```
|
|
376
|
-
|
|
377
|
-
Bad memories are vague:
|
|
378
|
-
|
|
379
|
-
```text
|
|
380
|
-
Make project better.
|
|
381
|
-
```
|
|
382
|
-
|
|
383
|
-
## Local Data
|
|
384
|
-
|
|
385
|
-
Default global brain:
|
|
386
|
-
|
|
387
|
-
```text
|
|
388
|
-
~/.shadow-brain/global.json
|
|
389
|
-
```
|
|
390
|
-
|
|
391
|
-
Project-local generated files may include:
|
|
392
|
-
|
|
393
|
-
```text
|
|
394
|
-
SHADOW_BRAIN_AGENT_BRIEF.md
|
|
395
|
-
SHADOW_BRAIN_RESUME_SEED.md
|
|
396
|
-
shadow-brain-training.jsonl
|
|
397
|
-
```
|
|
398
|
-
|
|
399
|
-
Do not store secrets, API keys, passwords, private keys, or raw credentials in memory content, metadata, tags, prompts, reports, or exported training data.
|
|
400
|
-
|
|
401
|
-
## Development
|
|
72
|
+
Six bundled skills cover workflow selection, implementation, debugging, review, research, and release. They help a client focus on the requested work, plan when useful, and verify the result.
|
|
402
73
|
|
|
403
74
|
```bash
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
75
|
+
shadow-brain skills list
|
|
76
|
+
shadow-brain skills install . --target codex
|
|
77
|
+
shadow-brain skills install . --target codex --apply
|
|
407
78
|
```
|
|
408
79
|
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
```bash
|
|
412
|
-
npx vitest run tests/brain/live-brain.test.ts tests/brain/context-continuity.test.ts
|
|
413
|
-
```
|
|
414
|
-
|
|
415
|
-
On Windows PowerShell, if execution policy blocks `npm.ps1`, use:
|
|
416
|
-
|
|
417
|
-
```powershell
|
|
418
|
-
npm.cmd run build
|
|
419
|
-
npx.cmd vitest run tests\brain\live-brain.test.ts
|
|
420
|
-
```
|
|
80
|
+
The first install command previews the files. The second applies the install and preserves your existing project instructions. Choose `claude-code`, `opencode`, `deepseek-harness`, or `portable` for other clients. Discovery depends on each client's skill support. [Skill integration guide](docs/WORKFLOW_INTEGRATION.md)
|
|
421
81
|
|
|
422
|
-
##
|
|
82
|
+
## Upgrade and reference
|
|
423
83
|
|
|
424
|
-
|
|
84
|
+
If you are upgrading from 6.x, back up `~/.shadow-brain/global.json` and stop older writers before using 7.x. The 7.x writers use a new lock protocol and keep memory schema version 1. [7.0 migration notes](docs/launch/RELEASE_NOTES_v7.0.0.md)
|
|
425
85
|
|
|
426
|
-
|
|
86
|
+
Version **7.1.3** is the requested release number for this upgrade, published after 7.2.0. Install it explicitly as shown above: semver-based update tools may otherwise prefer 7.2.0.
|
|
427
87
|
|
|
428
|
-
|
|
88
|
+
- [7.1.3 release notes](docs/launch/RELEASE_NOTES_v7.1.3.md)
|
|
89
|
+
- [Earlier CLI, MCP, seeding, and export guide](https://github.com/ihtishaam-dev/agent-shadow-brain/blob/v7.1.0/README.md)
|
|
90
|
+
- [Changelog](CHANGELOG.md) · [MIT license](LICENSE)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity-cli.d.ts","sourceRoot":"","sources":["../src/activity-cli.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyDpC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2C/D"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import * as os from 'node:os';
|
|
2
|
+
import * as path from 'node:path';
|
|
3
|
+
import { Command } from 'commander';
|
|
4
|
+
import { activityJournalFor } from './brain/activity-journal.js';
|
|
5
|
+
import { reportAgentActivity } from './brain/activity-reporting.js';
|
|
6
|
+
import { FEATURE_SETTINGS_FILENAME, FeatureSettingsStore } from './brain/feature-settings.js';
|
|
7
|
+
function stores(opts) {
|
|
8
|
+
const dbPath = path.resolve(opts.db ?? path.join(os.homedir(), '.shadow-brain', 'global.json'));
|
|
9
|
+
const settings = new FeatureSettingsStore({
|
|
10
|
+
filePath: opts.settings ?? (opts.db ? path.join(path.dirname(dbPath), FEATURE_SETTINGS_FILENAME) : undefined),
|
|
11
|
+
});
|
|
12
|
+
return { brain: { dbPath }, settings };
|
|
13
|
+
}
|
|
14
|
+
function storeOptions(command) {
|
|
15
|
+
return command.option('--db <path>', 'Use the activity journal adjacent to this memory store')
|
|
16
|
+
.option('--settings <path>', 'Explicit feature-settings file');
|
|
17
|
+
}
|
|
18
|
+
function cursorNumber(input) {
|
|
19
|
+
if (input === undefined)
|
|
20
|
+
return undefined;
|
|
21
|
+
if (!/^\d+$/.test(input) || !Number.isSafeInteger(Number(input))) {
|
|
22
|
+
throw new TypeError('Activity cursor must be a nonnegative integer.');
|
|
23
|
+
}
|
|
24
|
+
return Number(input);
|
|
25
|
+
}
|
|
26
|
+
function durationNumber(input) {
|
|
27
|
+
if (input === undefined)
|
|
28
|
+
return undefined;
|
|
29
|
+
const value = Number(input);
|
|
30
|
+
if (!/^\d+(?:\.\d+)?$/.test(input) || !Number.isFinite(value) || value > Number.MAX_SAFE_INTEGER) {
|
|
31
|
+
throw new TypeError('Activity duration must be a nonnegative number of milliseconds.');
|
|
32
|
+
}
|
|
33
|
+
return value;
|
|
34
|
+
}
|
|
35
|
+
export function registerActivityCommands(program) {
|
|
36
|
+
const activity = new Command('activity').description('Report or read bounded local activity metadata');
|
|
37
|
+
storeOptions(activity.command('report').description('Record an explicitly reported session, phase, or tool event'))
|
|
38
|
+
.argument('<kind>', 'session-start, phase, tool-start, tool-end, or session-end')
|
|
39
|
+
.requiredOption('--project-id <id>', 'Project label')
|
|
40
|
+
.requiredOption('--session <id>', 'Host session label')
|
|
41
|
+
.requiredOption('--agent <id>', 'Agent label')
|
|
42
|
+
.option('--phase <phase>', 'understand, plan, work, or verify')
|
|
43
|
+
.option('--tool <name>', 'Tool label')
|
|
44
|
+
.option('--correlation <id>', 'Shared ID for the tool start and end')
|
|
45
|
+
.option('--outcome <outcome>', 'success, error, or cancelled')
|
|
46
|
+
.option('--duration-ms <number>', 'Host-reported tool duration in milliseconds')
|
|
47
|
+
.action(async (kind, opts) => {
|
|
48
|
+
const durationMs = durationNumber(opts.durationMs);
|
|
49
|
+
const { brain, settings } = stores(opts);
|
|
50
|
+
const result = await reportAgentActivity(brain, settings, {
|
|
51
|
+
kind, projectId: opts.projectId, sessionId: opts.session, agent: opts.agent,
|
|
52
|
+
phase: opts.phase, tool: opts.tool, correlationId: opts.correlation, outcome: opts.outcome, durationMs,
|
|
53
|
+
});
|
|
54
|
+
console.log(JSON.stringify(result, null, 2));
|
|
55
|
+
});
|
|
56
|
+
storeOptions(activity.command('tail').description('Read a page of recent activity or continue from a cursor'))
|
|
57
|
+
.option('--project-id <id>', 'Filter by recorded project label')
|
|
58
|
+
.option('--cursor <number>', 'Continue after this event sequence')
|
|
59
|
+
.option('--journal-id <id>', 'Journal ID paired with a previous cursor')
|
|
60
|
+
.action((opts) => {
|
|
61
|
+
const { brain, settings } = stores(opts);
|
|
62
|
+
const flags = settings.get().features;
|
|
63
|
+
const enabled = { liveEnabled: flags.liveActivity, recordingEnabled: flags.activityRecording };
|
|
64
|
+
if (!flags.liveActivity) {
|
|
65
|
+
console.log(JSON.stringify({
|
|
66
|
+
...enabled, events: [], journalId: null, revision: 0, oldestSequence: null, latestSequence: 0,
|
|
67
|
+
nextAfterSequence: 0, cursor: 0, hasMore: false, gap: false, reset: false, retainedCount: 0, droppedCount: 0,
|
|
68
|
+
}, null, 2));
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
const page = activityJournalFor(brain).read({
|
|
72
|
+
projectId: opts.projectId, afterSequence: cursorNumber(opts.cursor), journalId: opts.journalId, limit: 200,
|
|
73
|
+
});
|
|
74
|
+
console.log(JSON.stringify({ ...enabled, ...page, cursor: page.nextAfterSequence }, null, 2));
|
|
75
|
+
});
|
|
76
|
+
program.addCommand(activity);
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=activity-cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity-cli.js","sourceRoot":"","sources":["../src/activity-cli.ts"],"names":[],"mappings":"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"}
|
package/dist/adapters/index.d.ts
CHANGED
|
@@ -9,7 +9,8 @@ import { AiderAdapter } from './aider.js';
|
|
|
9
9
|
import { CursorAdapter } from './cursor.js';
|
|
10
10
|
import { WindsurfAdapter } from './windsurf.js';
|
|
11
11
|
import { CopilotAdapter } from './copilot.js';
|
|
12
|
-
|
|
12
|
+
/** File adapters are distinct from clients that connect through MCP and skills. */
|
|
13
|
+
export declare const ALL_ADAPTERS: Record<Exclude<AgentTool, 'deepseek-harness'>, () => AgentAdapter>;
|
|
13
14
|
export declare function createAdapter(tool: AgentTool): AgentAdapter;
|
|
14
15
|
export declare function detectRunningAgents(projectDir: string): Promise<AgentAdapter[]>;
|
|
15
16
|
export { ClaudeCodeAdapter, KiloCodeAdapter, ClineAdapter, OpenCodeAdapter, CodexAdapter, RooCodeAdapter, AiderAdapter, CursorAdapter, WindsurfAdapter, CopilotAdapter, };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,mFAAmF;AACnF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,kBAAkB,CAAC,EAAE,MAAM,YAAY,CAW3F,CAAC;AAEF,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,YAAY,CAI3D;AAED,wBAAsB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAcrF;AAED,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,aAAa,EACb,eAAe,EACf,cAAc,GACf,CAAC"}
|
package/dist/adapters/index.js
CHANGED
|
@@ -9,6 +9,7 @@ import { AiderAdapter } from './aider.js';
|
|
|
9
9
|
import { CursorAdapter } from './cursor.js';
|
|
10
10
|
import { WindsurfAdapter } from './windsurf.js';
|
|
11
11
|
import { CopilotAdapter } from './copilot.js';
|
|
12
|
+
/** File adapters are distinct from clients that connect through MCP and skills. */
|
|
12
13
|
export const ALL_ADAPTERS = {
|
|
13
14
|
'claude-code': () => new ClaudeCodeAdapter(),
|
|
14
15
|
'kilo-code': () => new KiloCodeAdapter(),
|
|
@@ -22,9 +23,9 @@ export const ALL_ADAPTERS = {
|
|
|
22
23
|
'copilot': () => new CopilotAdapter(),
|
|
23
24
|
};
|
|
24
25
|
export function createAdapter(tool) {
|
|
26
|
+
if (!Object.hasOwn(ALL_ADAPTERS, tool))
|
|
27
|
+
throw new Error(`No native file adapter for ${tool}. Use its MCP or project-skill integration.`);
|
|
25
28
|
const factory = ALL_ADAPTERS[tool];
|
|
26
|
-
if (!factory)
|
|
27
|
-
throw new Error(`Unknown agent tool: ${tool}`);
|
|
28
29
|
return factory();
|
|
29
30
|
}
|
|
30
31
|
export async function detectRunningAgents(projectDir) {
|