toolnet-memory 0.3.10 → 0.3.12
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/README.md +432 -163
- package/bin/toolnet-memory +5 -0
- package/bundle/agy-hook.js +38 -38
- package/bundle/agy.js +23 -23
- package/bundle/api.js +19 -16
- package/bundle/auto-integrate.js +84 -31
- package/bundle/claude-hook.js +9 -9
- package/bundle/codex.js +28 -28
- package/bundle/context-runtime.js +4 -4
- package/bundle/context.js +12 -12
- package/bundle/continuity-certify.js +16 -13
- package/bundle/copilot-hook.js +66 -66
- package/bundle/copilot.js +23 -27
- package/bundle/cursor-hook.js +66 -66
- package/bundle/cursor.js +24 -27
- package/bundle/grok-hook.js +46 -46
- package/bundle/grok.js +6 -7
- package/bundle/help-cli.js +4 -4
- package/bundle/init.js +92 -39
- package/bundle/integration-status.js +55 -0
- package/bundle/kiro-hook.js +14 -14
- package/bundle/mcp.js +21 -18
- package/bundle/opencode.js +27 -27
- package/bundle/setup.js +90 -37
- package/bundle/status-cli.js +4 -4
- package/package.json +12 -2
package/README.md
CHANGED
|
@@ -11,30 +11,65 @@
|
|
|
11
11
|
|
|
12
12
|
**One project. Multiple coding agents. Continuous context.**
|
|
13
13
|
|
|
14
|
+
Current release: **v0.3.11**
|
|
15
|
+
|
|
14
16
|
</div>
|
|
15
17
|
|
|
16
18
|
---
|
|
17
19
|
|
|
18
20
|
## What is ToolNet Memory?
|
|
19
21
|
|
|
20
|
-
ToolNet Memory is a persistent
|
|
22
|
+
ToolNet Memory is a persistent memory, continuity, and code-intelligence layer for AI coding agents.
|
|
21
23
|
|
|
22
|
-
It keeps project knowledge outside a single chat
|
|
24
|
+
It keeps project knowledge outside a single chat or session so supported coding agents can continue the same work without rebuilding context from zero.
|
|
23
25
|
|
|
24
26
|
ToolNet Memory combines four layers:
|
|
25
27
|
|
|
26
|
-
- **Fast project context** — local startup context
|
|
27
|
-
- **Work continuity** — current goal,
|
|
28
|
+
- **Fast project context** — small local startup context for normal work.
|
|
29
|
+
- **Work continuity** — current goal, phase, blockers, decisions, and next actions.
|
|
28
30
|
- **Durable memory** — filtered project knowledge that survives agent/session changes.
|
|
29
|
-
- **Code intelligence** — symbols, dependencies, call
|
|
31
|
+
- **Code intelligence** — symbols, dependencies, call graphs, architecture, semantic search, impact analysis, and graph visualization.
|
|
32
|
+
|
|
33
|
+
ToolNet Memory is **not a raw transcript dump**. Raw session history is kept separate from durable project memory and is protected from normal agent reads.
|
|
34
|
+
|
|
35
|
+
---
|
|
30
36
|
|
|
31
|
-
|
|
37
|
+
## Supported Coding Agents
|
|
38
|
+
|
|
39
|
+
ToolNet Memory currently supports an 8-agent continuity ring:
|
|
40
|
+
|
|
41
|
+
```text
|
|
42
|
+
Agy / Antigravity
|
|
43
|
+
OpenCode
|
|
44
|
+
Codex
|
|
45
|
+
Claude Code
|
|
46
|
+
Kiro CLI
|
|
47
|
+
Cursor CLI
|
|
48
|
+
GitHub Copilot CLI
|
|
49
|
+
Grok Build
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
A project can move between agents while keeping the same ToolNet work state and memory.
|
|
53
|
+
|
|
54
|
+
Typical continuity data includes:
|
|
55
|
+
|
|
56
|
+
```text
|
|
57
|
+
Current request
|
|
58
|
+
Current goal
|
|
59
|
+
Current task
|
|
60
|
+
Current phase
|
|
61
|
+
Recent decisions
|
|
62
|
+
Blockers
|
|
63
|
+
Warnings
|
|
64
|
+
Next actions
|
|
65
|
+
Last agent/session
|
|
66
|
+
```
|
|
32
67
|
|
|
33
68
|
---
|
|
34
69
|
|
|
35
70
|
## Quick Start
|
|
36
71
|
|
|
37
|
-
### 1. Install
|
|
72
|
+
### 1. Install
|
|
38
73
|
|
|
39
74
|
```bash
|
|
40
75
|
curl -fsSL https://memory.toolnet.tech/install | bash
|
|
@@ -55,7 +90,7 @@ toolnet-memory --version
|
|
|
55
90
|
toolnet-memory doctor
|
|
56
91
|
```
|
|
57
92
|
|
|
58
|
-
### 2. Configure
|
|
93
|
+
### 2. Configure
|
|
59
94
|
|
|
60
95
|
```bash
|
|
61
96
|
toolnet-memory setup
|
|
@@ -74,13 +109,19 @@ cd /path/to/project
|
|
|
74
109
|
toolnet-memory init
|
|
75
110
|
```
|
|
76
111
|
|
|
77
|
-
|
|
112
|
+
Project identity is stored in:
|
|
113
|
+
|
|
114
|
+
```text
|
|
115
|
+
.toolnet/project.json
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### 4. Build project intelligence
|
|
78
119
|
|
|
79
120
|
```bash
|
|
80
121
|
toolnet-memory index
|
|
81
122
|
```
|
|
82
123
|
|
|
83
|
-
The full index
|
|
124
|
+
The full index pipeline includes:
|
|
84
125
|
|
|
85
126
|
```text
|
|
86
127
|
Scanning files
|
|
@@ -100,7 +141,7 @@ Graph Analysis
|
|
|
100
141
|
3D Visualization Dataset
|
|
101
142
|
```
|
|
102
143
|
|
|
103
|
-
After the first full index,
|
|
144
|
+
After the first full index, normal code changes can use:
|
|
104
145
|
|
|
105
146
|
```bash
|
|
106
147
|
toolnet-memory incremental
|
|
@@ -108,67 +149,59 @@ toolnet-memory incremental
|
|
|
108
149
|
|
|
109
150
|
---
|
|
110
151
|
|
|
111
|
-
##
|
|
152
|
+
## Daily Workflow
|
|
112
153
|
|
|
113
|
-
|
|
154
|
+
Normal startup is intentionally lightweight:
|
|
114
155
|
|
|
115
156
|
```text
|
|
116
157
|
Open project
|
|
117
158
|
↓
|
|
118
|
-
Agent
|
|
159
|
+
Agent loads ToolNet integration
|
|
119
160
|
↓
|
|
120
|
-
Fast local context
|
|
161
|
+
Fast local context is available
|
|
121
162
|
↓
|
|
122
163
|
Agent continues current work
|
|
123
164
|
↓
|
|
124
|
-
|
|
165
|
+
Meaningful continuity is captured
|
|
125
166
|
```
|
|
126
167
|
|
|
127
|
-
|
|
168
|
+
Useful commands:
|
|
128
169
|
|
|
129
170
|
```bash
|
|
130
|
-
|
|
131
|
-
|
|
171
|
+
# Fast project context
|
|
172
|
+
toolnet-memory context
|
|
132
173
|
|
|
133
|
-
|
|
174
|
+
# Current work state
|
|
175
|
+
toolnet-memory work
|
|
134
176
|
|
|
135
|
-
|
|
136
|
-
toolnet-memory
|
|
177
|
+
# Ask project memory
|
|
178
|
+
toolnet-memory ask "What changed in the authentication flow?"
|
|
179
|
+
|
|
180
|
+
# Project status
|
|
181
|
+
toolnet-memory status
|
|
137
182
|
```
|
|
138
183
|
|
|
139
|
-
|
|
184
|
+
Deep recovery is separate and is not automatically dumped into every prompt.
|
|
140
185
|
|
|
141
186
|
---
|
|
142
187
|
|
|
143
|
-
|
|
188
|
+
# Agent Integrations
|
|
144
189
|
|
|
145
|
-
|
|
190
|
+
Detect installed/supported coding agents:
|
|
146
191
|
|
|
147
|
-
```
|
|
148
|
-
|
|
192
|
+
```bash
|
|
193
|
+
toolnet-memory integrate:detect
|
|
149
194
|
```
|
|
150
195
|
|
|
151
|
-
|
|
196
|
+
Automatically configure detected integrations:
|
|
152
197
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
```text
|
|
156
|
-
Last agent
|
|
157
|
-
Last session
|
|
158
|
-
Current request
|
|
159
|
-
Current activity
|
|
160
|
-
Goal
|
|
161
|
-
Plan
|
|
162
|
-
Current phase
|
|
163
|
-
Blockers
|
|
164
|
-
Decisions
|
|
165
|
-
Next actions
|
|
198
|
+
```bash
|
|
199
|
+
toolnet-memory integrate:auto
|
|
166
200
|
```
|
|
167
201
|
|
|
168
|
-
|
|
202
|
+
Manual integration commands:
|
|
169
203
|
|
|
170
204
|
```bash
|
|
171
|
-
toolnet-memory integrate:auto
|
|
172
205
|
toolnet-memory integrate:agy
|
|
173
206
|
toolnet-memory integrate:opencode
|
|
174
207
|
toolnet-memory integrate:codex
|
|
@@ -179,39 +212,310 @@ toolnet-memory integrate:copilot
|
|
|
179
212
|
toolnet-memory integrate:grok
|
|
180
213
|
```
|
|
181
214
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## v0.3.11: Dual-Scope Integrations
|
|
218
|
+
|
|
219
|
+
Cursor CLI, GitHub Copilot CLI, and Grok Build support three explicit scopes:
|
|
220
|
+
|
|
221
|
+
```text
|
|
222
|
+
global
|
|
223
|
+
project
|
|
224
|
+
both
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
Examples:
|
|
228
|
+
|
|
229
|
+
```bash
|
|
230
|
+
# Global only
|
|
231
|
+
toolnet-memory integrate:cursor --scope global
|
|
185
232
|
|
|
186
|
-
|
|
233
|
+
# Project only
|
|
234
|
+
toolnet-memory integrate:cursor \
|
|
235
|
+
--scope project \
|
|
236
|
+
--project /path/to/project
|
|
237
|
+
|
|
238
|
+
# Global + project
|
|
239
|
+
toolnet-memory integrate:cursor \
|
|
240
|
+
--scope both \
|
|
241
|
+
--project /path/to/project
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
The same scope syntax is supported by:
|
|
187
245
|
|
|
188
246
|
```bash
|
|
189
|
-
toolnet-memory integrate:
|
|
247
|
+
toolnet-memory integrate:copilot ...
|
|
248
|
+
toolnet-memory integrate:grok ...
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
### Scope policy
|
|
252
|
+
|
|
253
|
+
`integrate:auto` uses a conservative policy:
|
|
254
|
+
|
|
255
|
+
| Current location | Automatic scope |
|
|
256
|
+
| --- | --- |
|
|
257
|
+
| Ordinary directory | `global` |
|
|
258
|
+
| Git repository without ToolNet initialization | `global` |
|
|
259
|
+
| Existing ToolNet project with `.toolnet/project.json` | `both` |
|
|
260
|
+
|
|
261
|
+
ToolNet does **not** create `.cursor/`, `.github/`, or `.grok/` project configuration just because the current directory is a Git repository.
|
|
262
|
+
|
|
263
|
+
Explicit scope always wins:
|
|
264
|
+
|
|
265
|
+
```bash
|
|
266
|
+
toolnet-memory integrate:auto --scope global
|
|
267
|
+
|
|
268
|
+
toolnet-memory integrate:auto \
|
|
269
|
+
--scope project \
|
|
270
|
+
--project /path/to/project
|
|
271
|
+
|
|
272
|
+
toolnet-memory integrate:auto \
|
|
273
|
+
--scope both \
|
|
274
|
+
--project /path/to/project
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
---
|
|
278
|
+
|
|
279
|
+
## Cursor CLI
|
|
280
|
+
|
|
281
|
+
Install:
|
|
282
|
+
|
|
283
|
+
```bash
|
|
284
|
+
toolnet-memory integrate:cursor --scope global
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
Or for an initialized ToolNet project:
|
|
288
|
+
|
|
289
|
+
```bash
|
|
290
|
+
toolnet-memory integrate:cursor \
|
|
291
|
+
--scope both \
|
|
292
|
+
--project /path/to/project
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
ToolNet surfaces:
|
|
296
|
+
|
|
297
|
+
```text
|
|
298
|
+
Global MCP
|
|
299
|
+
~/.cursor/mcp.json
|
|
300
|
+
|
|
301
|
+
Project MCP
|
|
302
|
+
<project>/.cursor/mcp.json
|
|
303
|
+
|
|
304
|
+
Global Hooks
|
|
305
|
+
~/.cursor/hooks.json
|
|
306
|
+
|
|
307
|
+
Project Hooks
|
|
308
|
+
<project>/.cursor/hooks.json
|
|
309
|
+
|
|
310
|
+
Project Rule
|
|
311
|
+
<project>/.cursor/rules/toolnet-memory.mdc
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
Project and global hook layers can both be active. ToolNet uses cross-process event deduplication to prevent duplicate capture.
|
|
315
|
+
|
|
316
|
+
---
|
|
317
|
+
|
|
318
|
+
## GitHub Copilot CLI
|
|
319
|
+
|
|
320
|
+
Install:
|
|
321
|
+
|
|
322
|
+
```bash
|
|
323
|
+
toolnet-memory integrate:copilot --scope global
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
Or:
|
|
327
|
+
|
|
328
|
+
```bash
|
|
329
|
+
toolnet-memory integrate:copilot \
|
|
330
|
+
--scope both \
|
|
331
|
+
--project /path/to/project
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
ToolNet surfaces:
|
|
335
|
+
|
|
336
|
+
```text
|
|
337
|
+
Global MCP
|
|
338
|
+
~/.copilot/mcp-config.json
|
|
339
|
+
|
|
340
|
+
Project MCP
|
|
341
|
+
<project>/.github/mcp.json
|
|
342
|
+
|
|
343
|
+
Global Hooks
|
|
344
|
+
~/.copilot/hooks/toolnet-memory.json
|
|
345
|
+
|
|
346
|
+
Project Hooks
|
|
347
|
+
<project>/.github/hooks/toolnet-memory.json
|
|
348
|
+
|
|
349
|
+
Project Instruction
|
|
350
|
+
<project>/.github/instructions/toolnet-memory.instructions.md
|
|
190
351
|
```
|
|
191
352
|
|
|
192
|
-
|
|
353
|
+
ToolNet does not overwrite `.github/copilot-instructions.md`.
|
|
354
|
+
|
|
355
|
+
If both global and project MCP entries exist, the project ToolNet MCP is treated as the effective project-scoped configuration.
|
|
356
|
+
|
|
357
|
+
---
|
|
358
|
+
|
|
359
|
+
## Grok Build
|
|
360
|
+
|
|
361
|
+
Install:
|
|
362
|
+
|
|
363
|
+
```bash
|
|
364
|
+
toolnet-memory integrate:grok --scope global
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
Or:
|
|
368
|
+
|
|
369
|
+
```bash
|
|
370
|
+
toolnet-memory integrate:grok \
|
|
371
|
+
--scope both \
|
|
372
|
+
--project /path/to/project
|
|
373
|
+
```
|
|
193
374
|
|
|
194
|
-
ToolNet
|
|
375
|
+
ToolNet surfaces:
|
|
195
376
|
|
|
196
|
-
|
|
377
|
+
```text
|
|
378
|
+
Global MCP
|
|
379
|
+
~/.grok/config.toml
|
|
380
|
+
|
|
381
|
+
Project MCP
|
|
382
|
+
<project>/.grok/config.toml
|
|
383
|
+
|
|
384
|
+
Global Hooks
|
|
385
|
+
~/.grok/hooks/toolnet-memory.json
|
|
386
|
+
|
|
387
|
+
Project Hooks
|
|
388
|
+
<project>/.grok/hooks/toolnet-memory.json
|
|
389
|
+
|
|
390
|
+
Global Continuity Skill
|
|
391
|
+
~/.grok/skills/toolnet-continuity/SKILL.md
|
|
392
|
+
|
|
393
|
+
Project Continuity Skill
|
|
394
|
+
<project>/.grok/skills/toolnet-continuity/SKILL.md
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
In a project, the project ToolNet MCP and project continuity skill are the effective project-scoped versions.
|
|
398
|
+
|
|
399
|
+
Grok command hooks for lifecycle events remain passive; continuity is provided through the ToolNet MCP and `toolnet-continuity` skill rather than pretending hook stdout is hidden model context.
|
|
400
|
+
|
|
401
|
+
---
|
|
402
|
+
|
|
403
|
+
## Unified Integration Status
|
|
404
|
+
|
|
405
|
+
Show Cursor, Copilot, and Grok scope state together:
|
|
406
|
+
|
|
407
|
+
```bash
|
|
408
|
+
toolnet-memory integrate:status --scope global
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
For a project:
|
|
412
|
+
|
|
413
|
+
```bash
|
|
414
|
+
toolnet-memory integrate:status \
|
|
415
|
+
--scope both \
|
|
416
|
+
--project /path/to/project
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
Filter one agent:
|
|
420
|
+
|
|
421
|
+
```bash
|
|
422
|
+
toolnet-memory integrate:status \
|
|
423
|
+
--scope both \
|
|
424
|
+
--project /path/to/project \
|
|
425
|
+
--agent cursor
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
JSON output:
|
|
429
|
+
|
|
430
|
+
```bash
|
|
431
|
+
toolnet-memory integrate:status \
|
|
432
|
+
--scope both \
|
|
433
|
+
--project /path/to/project \
|
|
434
|
+
--json
|
|
435
|
+
```
|
|
436
|
+
|
|
437
|
+
Status reports:
|
|
438
|
+
|
|
439
|
+
```text
|
|
440
|
+
Global configuration
|
|
441
|
+
Project configuration
|
|
442
|
+
Effective MCP scope
|
|
443
|
+
Effective hook scope
|
|
444
|
+
Effective rule/instruction/skill scope
|
|
445
|
+
Dedupe readiness
|
|
446
|
+
Trust requirement
|
|
447
|
+
Precedence/shadowing risk
|
|
448
|
+
Warnings
|
|
449
|
+
```
|
|
450
|
+
|
|
451
|
+
ToolNet does not claim that a workspace is natively trusted unless the host application proves it. Project trust is therefore reported conservatively as required/unverified when applicable.
|
|
452
|
+
|
|
453
|
+
---
|
|
454
|
+
|
|
455
|
+
## Cross-Process Hook Deduplication
|
|
456
|
+
|
|
457
|
+
When both global and project hooks are loaded by a host, the same native event may arrive through two hook processes.
|
|
458
|
+
|
|
459
|
+
ToolNet prevents double capture with a short-lived cross-process event claim keyed by agent, session, event, and stable native identity.
|
|
460
|
+
|
|
461
|
+
Examples of deduplicated events include lifecycle and prompt events.
|
|
462
|
+
|
|
463
|
+
Security enforcement such as raw-session-history protection is evaluated before deduplication so a second hook source cannot bypass policy checks.
|
|
464
|
+
|
|
465
|
+
---
|
|
466
|
+
|
|
467
|
+
## Kiro CLI
|
|
468
|
+
|
|
469
|
+
Kiro integrates through MCP and lifecycle hooks:
|
|
470
|
+
|
|
471
|
+
```bash
|
|
197
472
|
toolnet-memory integrate:kiro
|
|
198
473
|
toolnet-memory integrate:kiro --status
|
|
474
|
+
```
|
|
475
|
+
|
|
476
|
+
Kiro receives ToolNet continuity through the shared memory core and does not maintain a separate memory database.
|
|
199
477
|
|
|
200
|
-
|
|
478
|
+
---
|
|
201
479
|
|
|
202
|
-
|
|
480
|
+
## MCP Server
|
|
203
481
|
|
|
204
|
-
|
|
482
|
+
Run the ToolNet MCP server directly:
|
|
205
483
|
|
|
206
484
|
```bash
|
|
207
485
|
toolnet-memory mcp
|
|
208
|
-
|
|
486
|
+
```
|
|
487
|
+
|
|
488
|
+
Core MCP capabilities include:
|
|
489
|
+
|
|
490
|
+
```text
|
|
491
|
+
memory_search
|
|
492
|
+
memory_save
|
|
493
|
+
memory_forget
|
|
494
|
+
project_context
|
|
495
|
+
code_search
|
|
496
|
+
semantic_code_search
|
|
497
|
+
find_symbol
|
|
498
|
+
find_callers
|
|
499
|
+
trace_calls
|
|
500
|
+
find_dependencies
|
|
501
|
+
analyze_impact
|
|
502
|
+
get_architecture
|
|
503
|
+
graph_path
|
|
504
|
+
graph_neighborhood
|
|
505
|
+
dead_code
|
|
506
|
+
snapshot_create
|
|
507
|
+
snapshot_list
|
|
508
|
+
snapshot_restore
|
|
509
|
+
memory_agent_ask
|
|
510
|
+
```
|
|
511
|
+
|
|
512
|
+
`memory_agent_ask` is the continuity-facing agent entry point used when an agent needs to recover or continue prior project work.
|
|
209
513
|
|
|
210
514
|
---
|
|
211
515
|
|
|
212
516
|
## Project Operating Manual
|
|
213
517
|
|
|
214
|
-
|
|
518
|
+
Projects can define persistent rules in:
|
|
215
519
|
|
|
216
520
|
```text
|
|
217
521
|
.toolnet/PROJECT.md
|
|
@@ -248,26 +552,17 @@ toolnet-memory project:manual-show
|
|
|
248
552
|
toolnet-memory project:manual-sync
|
|
249
553
|
```
|
|
250
554
|
|
|
251
|
-
This is the correct place for rules such as:
|
|
252
|
-
|
|
253
|
-
- allowed source path,
|
|
254
|
-
- development vs production environment,
|
|
255
|
-
- deployment commands,
|
|
256
|
-
- files that must not be edited,
|
|
257
|
-
- verification requirements,
|
|
258
|
-
- architecture constraints.
|
|
259
|
-
|
|
260
555
|
Secrets and credentials should remain in `.env` or another secret store, not in `PROJECT.md`.
|
|
261
556
|
|
|
262
557
|
---
|
|
263
558
|
|
|
264
559
|
## Code Intelligence
|
|
265
560
|
|
|
266
|
-
ToolNet
|
|
561
|
+
ToolNet builds a persistent structural model of the codebase.
|
|
267
562
|
|
|
268
563
|
Capabilities include:
|
|
269
564
|
|
|
270
|
-
-
|
|
565
|
+
- symbol indexing,
|
|
271
566
|
- imports and dependencies,
|
|
272
567
|
- callers and callees,
|
|
273
568
|
- type relationships,
|
|
@@ -296,23 +591,17 @@ toolnet-memory semantic "authentication flow"
|
|
|
296
591
|
toolnet-memory impact src/auth.ts
|
|
297
592
|
```
|
|
298
593
|
|
|
299
|
-
The goal is not only to find code, but to help an agent understand **what may break if a file, symbol, or dependency changes**.
|
|
300
|
-
|
|
301
594
|
---
|
|
302
595
|
|
|
303
596
|
## Code Graph UI
|
|
304
597
|
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
Start it with:
|
|
598
|
+
Open the project graph:
|
|
308
599
|
|
|
309
600
|
```bash
|
|
310
601
|
toolnet-memory graph
|
|
311
602
|
```
|
|
312
603
|
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
For large projects, the UI uses a lightweight drill-down flow instead of rendering the complete symbol graph at once:
|
|
604
|
+
For large projects the UI uses drill-down navigation:
|
|
316
605
|
|
|
317
606
|
```text
|
|
318
607
|
Overview
|
|
@@ -324,15 +613,13 @@ Files
|
|
|
324
613
|
Symbols + relationships
|
|
325
614
|
```
|
|
326
615
|
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
The graph server defaults to:
|
|
616
|
+
Default address:
|
|
330
617
|
|
|
331
618
|
```text
|
|
332
619
|
127.0.0.1:9749
|
|
333
620
|
```
|
|
334
621
|
|
|
335
|
-
|
|
622
|
+
Optional VPS exposure:
|
|
336
623
|
|
|
337
624
|
```bash
|
|
338
625
|
TOOLNET_GRAPH_HOST=0.0.0.0 \
|
|
@@ -344,19 +631,14 @@ toolnet-memory graph
|
|
|
344
631
|
|
|
345
632
|
## Memory and Work Continuity
|
|
346
633
|
|
|
347
|
-
View
|
|
634
|
+
View current work:
|
|
348
635
|
|
|
349
636
|
```bash
|
|
350
637
|
toolnet-memory work
|
|
351
|
-
```
|
|
352
|
-
|
|
353
|
-
or:
|
|
354
|
-
|
|
355
|
-
```bash
|
|
356
638
|
toolnet-memory work:status
|
|
357
639
|
```
|
|
358
640
|
|
|
359
|
-
Ask
|
|
641
|
+
Ask memory:
|
|
360
642
|
|
|
361
643
|
```bash
|
|
362
644
|
toolnet-memory ask "What was changed in the authentication flow?"
|
|
@@ -369,7 +651,7 @@ toolnet-memory memory:review
|
|
|
369
651
|
toolnet-memory memory:reconcile
|
|
370
652
|
```
|
|
371
653
|
|
|
372
|
-
|
|
654
|
+
Structured continuity can include:
|
|
373
655
|
|
|
374
656
|
```text
|
|
375
657
|
Mission
|
|
@@ -389,20 +671,20 @@ Next Actions
|
|
|
389
671
|
|
|
390
672
|
## Fast Context vs Deep Recovery
|
|
391
673
|
|
|
392
|
-
### Fast
|
|
674
|
+
### Fast context
|
|
393
675
|
|
|
394
|
-
|
|
676
|
+
Used for normal startup:
|
|
395
677
|
|
|
396
678
|
```bash
|
|
397
|
-
toolnet-memory
|
|
679
|
+
toolnet-memory context
|
|
398
680
|
toolnet-memory context:print
|
|
399
681
|
```
|
|
400
682
|
|
|
401
|
-
It
|
|
683
|
+
It is local and bounded.
|
|
402
684
|
|
|
403
|
-
### Deep
|
|
685
|
+
### Deep recovery
|
|
404
686
|
|
|
405
|
-
Use
|
|
687
|
+
Use only when fast context is insufficient:
|
|
406
688
|
|
|
407
689
|
```bash
|
|
408
690
|
toolnet-memory brief
|
|
@@ -412,21 +694,19 @@ toolnet-memory session:codex-recover
|
|
|
412
694
|
toolnet-memory session:opencode-recover
|
|
413
695
|
```
|
|
414
696
|
|
|
415
|
-
|
|
697
|
+
Deep recovery is intentionally not run automatically on every startup.
|
|
416
698
|
|
|
417
699
|
---
|
|
418
700
|
|
|
419
701
|
## AI Providers and Models
|
|
420
702
|
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
Run interactive setup:
|
|
703
|
+
Configure interactively:
|
|
424
704
|
|
|
425
705
|
```bash
|
|
426
706
|
toolnet-memory setup
|
|
427
707
|
```
|
|
428
708
|
|
|
429
|
-
|
|
709
|
+
Provider commands:
|
|
430
710
|
|
|
431
711
|
```bash
|
|
432
712
|
toolnet-memory provider
|
|
@@ -436,7 +716,7 @@ toolnet-memory provider:test llm
|
|
|
436
716
|
toolnet-memory provider:test embedding
|
|
437
717
|
```
|
|
438
718
|
|
|
439
|
-
|
|
719
|
+
Model commands:
|
|
440
720
|
|
|
441
721
|
```bash
|
|
442
722
|
toolnet-memory model
|
|
@@ -445,7 +725,7 @@ toolnet-memory model list
|
|
|
445
725
|
toolnet-memory model set <model>
|
|
446
726
|
```
|
|
447
727
|
|
|
448
|
-
Canonical configuration
|
|
728
|
+
Canonical environment configuration:
|
|
449
729
|
|
|
450
730
|
```text
|
|
451
731
|
TOOLNET_LLM_PROVIDER
|
|
@@ -459,21 +739,17 @@ TOOLNET_EMBEDDING_BASE_URL
|
|
|
459
739
|
TOOLNET_EMBEDDING_MODEL
|
|
460
740
|
```
|
|
461
741
|
|
|
462
|
-
Optional LLM fallbacks are supported for transient failures such as timeouts, HTTP 408, 429, and 5xx responses.
|
|
463
|
-
|
|
464
742
|
---
|
|
465
743
|
|
|
466
744
|
## Storage
|
|
467
745
|
|
|
468
|
-
Supported
|
|
746
|
+
Supported modes include:
|
|
469
747
|
|
|
470
748
|
- Cloudflare R2,
|
|
471
749
|
- generic S3 / S3-compatible storage,
|
|
472
750
|
- local storage,
|
|
473
751
|
- Hugging Face S3 compatibility mode.
|
|
474
752
|
|
|
475
|
-
Projects remain isolated by stable ToolNet project identity.
|
|
476
|
-
|
|
477
753
|
A typical remote layout is:
|
|
478
754
|
|
|
479
755
|
```text
|
|
@@ -485,20 +761,12 @@ projects/<project>/
|
|
|
485
761
|
└── snapshots/
|
|
486
762
|
```
|
|
487
763
|
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
```text
|
|
491
|
-
.toolnet/project.json
|
|
492
|
-
```
|
|
493
|
-
|
|
494
|
-
Renaming or moving a project directory should not cause unrelated projects to share memory.
|
|
764
|
+
Projects remain isolated by stable ToolNet project identity.
|
|
495
765
|
|
|
496
766
|
---
|
|
497
767
|
|
|
498
768
|
## Snapshots and Recovery
|
|
499
769
|
|
|
500
|
-
Create and restore project-scoped snapshots:
|
|
501
|
-
|
|
502
770
|
```bash
|
|
503
771
|
toolnet-memory snapshot:list
|
|
504
772
|
toolnet-memory snapshot:create "before refactor"
|
|
@@ -510,7 +778,7 @@ toolnet-memory recover
|
|
|
510
778
|
|
|
511
779
|
## Architecture Guard
|
|
512
780
|
|
|
513
|
-
|
|
781
|
+
Evaluate project rules and potentially dangerous changes:
|
|
514
782
|
|
|
515
783
|
```bash
|
|
516
784
|
toolnet-memory guard:check
|
|
@@ -519,13 +787,11 @@ toolnet-memory guard:check --command "rm -rf ..."
|
|
|
519
787
|
toolnet-memory guard:explain
|
|
520
788
|
```
|
|
521
789
|
|
|
522
|
-
The project manual and guard system are intended to reduce accidental violations of important project constraints.
|
|
523
|
-
|
|
524
790
|
---
|
|
525
791
|
|
|
526
792
|
## Background Service
|
|
527
793
|
|
|
528
|
-
|
|
794
|
+
Optional daemon commands:
|
|
529
795
|
|
|
530
796
|
```bash
|
|
531
797
|
toolnet-memory service:install
|
|
@@ -536,33 +802,33 @@ toolnet-memory service:stop
|
|
|
536
802
|
toolnet-memory service:remove
|
|
537
803
|
```
|
|
538
804
|
|
|
539
|
-
The
|
|
805
|
+
The daemon is optional; the core CLI does not require a permanent background service.
|
|
540
806
|
|
|
541
807
|
---
|
|
542
808
|
|
|
543
809
|
## CLI Help
|
|
544
810
|
|
|
545
|
-
|
|
811
|
+
Compact help:
|
|
546
812
|
|
|
547
813
|
```bash
|
|
548
814
|
toolnet-memory help
|
|
549
815
|
```
|
|
550
816
|
|
|
551
|
-
|
|
817
|
+
All commands:
|
|
552
818
|
|
|
553
819
|
```bash
|
|
554
820
|
toolnet-memory help --all
|
|
555
821
|
```
|
|
556
822
|
|
|
557
|
-
|
|
823
|
+
One command:
|
|
558
824
|
|
|
559
825
|
```bash
|
|
560
826
|
toolnet-memory help index
|
|
561
827
|
toolnet-memory help model
|
|
562
|
-
toolnet-memory help
|
|
828
|
+
toolnet-memory help integrate:cursor
|
|
563
829
|
```
|
|
564
830
|
|
|
565
|
-
Main
|
|
831
|
+
Main commands:
|
|
566
832
|
|
|
567
833
|
```text
|
|
568
834
|
GET STARTED
|
|
@@ -585,39 +851,19 @@ AI
|
|
|
585
851
|
model
|
|
586
852
|
provider
|
|
587
853
|
|
|
854
|
+
INTEGRATIONS
|
|
855
|
+
integrate:detect
|
|
856
|
+
integrate:auto
|
|
857
|
+
integrate:status
|
|
858
|
+
integrate:cursor
|
|
859
|
+
integrate:copilot
|
|
860
|
+
integrate:grok
|
|
861
|
+
|
|
588
862
|
SYSTEM
|
|
589
863
|
status
|
|
590
864
|
update
|
|
591
865
|
```
|
|
592
866
|
|
|
593
|
-
Advanced, recovery, service, session, and production commands remain available through `help --all`.
|
|
594
|
-
|
|
595
|
-
---
|
|
596
|
-
|
|
597
|
-
## Health and Status
|
|
598
|
-
|
|
599
|
-
Quick status:
|
|
600
|
-
|
|
601
|
-
```bash
|
|
602
|
-
toolnet-memory status
|
|
603
|
-
```
|
|
604
|
-
|
|
605
|
-
Deeper diagnostics:
|
|
606
|
-
|
|
607
|
-
```bash
|
|
608
|
-
toolnet-memory doctor
|
|
609
|
-
```
|
|
610
|
-
|
|
611
|
-
Configuration:
|
|
612
|
-
|
|
613
|
-
```bash
|
|
614
|
-
toolnet-memory config get KEY
|
|
615
|
-
toolnet-memory config set KEY VALUE
|
|
616
|
-
toolnet-memory config open
|
|
617
|
-
```
|
|
618
|
-
|
|
619
|
-
Secret values are masked in normal CLI output.
|
|
620
|
-
|
|
621
867
|
---
|
|
622
868
|
|
|
623
869
|
## Updating
|
|
@@ -626,7 +872,7 @@ Secret values are masked in normal CLI output.
|
|
|
626
872
|
toolnet-memory update
|
|
627
873
|
```
|
|
628
874
|
|
|
629
|
-
Or
|
|
875
|
+
Or:
|
|
630
876
|
|
|
631
877
|
```bash
|
|
632
878
|
npm install -g toolnet-memory@latest
|
|
@@ -641,12 +887,13 @@ ToolNet Memory processes source-code metadata, project instructions, agent activ
|
|
|
641
887
|
Important rules:
|
|
642
888
|
|
|
643
889
|
- Never commit `.env` files or credentials.
|
|
644
|
-
- Keep
|
|
890
|
+
- Keep passwords, API keys, and tokens out of `PROJECT.md`.
|
|
645
891
|
- Sanitize secrets before durable persistence.
|
|
646
892
|
- Never inject memory from another project.
|
|
647
893
|
- Treat raw coding-agent transcripts as sensitive.
|
|
648
894
|
- Keep deep recovery manual and bounded.
|
|
649
895
|
- Store global ToolNet credentials outside project repositories.
|
|
896
|
+
- Raw ToolNet session/history files are protected from normal agent access.
|
|
650
897
|
|
|
651
898
|
See [SECURITY.md](SECURITY.md) for vulnerability reporting.
|
|
652
899
|
|
|
@@ -667,6 +914,26 @@ npm run build:release
|
|
|
667
914
|
npm pack --dry-run
|
|
668
915
|
```
|
|
669
916
|
|
|
917
|
+
Phase 07 integration certification:
|
|
918
|
+
|
|
919
|
+
```bash
|
|
920
|
+
npm run release:certify:phase07
|
|
921
|
+
```
|
|
922
|
+
|
|
923
|
+
8-agent continuity certification:
|
|
924
|
+
|
|
925
|
+
```bash
|
|
926
|
+
npm run release:certify:8
|
|
927
|
+
```
|
|
928
|
+
|
|
929
|
+
Optional native CLI E2E certification:
|
|
930
|
+
|
|
931
|
+
```bash
|
|
932
|
+
npm run release:certify:native:optional
|
|
933
|
+
```
|
|
934
|
+
|
|
935
|
+
Native Cursor/Copilot/Grok binaries are not required for normal package release certification.
|
|
936
|
+
|
|
670
937
|
See [CONTRIBUTING.md](CONTRIBUTING.md) for contribution rules.
|
|
671
938
|
|
|
672
939
|
---
|
|
@@ -675,25 +942,27 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for contribution rules.
|
|
|
675
942
|
|
|
676
943
|
ToolNet Memory uses GitHub Actions for CI and npm releases.
|
|
677
944
|
|
|
678
|
-
|
|
945
|
+
The current release line is:
|
|
946
|
+
|
|
947
|
+
```text
|
|
948
|
+
npm package: toolnet-memory@0.3.11
|
|
949
|
+
Git tag: v0.3.11
|
|
950
|
+
```
|
|
951
|
+
|
|
952
|
+
Before release, the repository validates:
|
|
679
953
|
|
|
680
954
|
```text
|
|
681
955
|
lint
|
|
682
956
|
format
|
|
683
957
|
TypeScript
|
|
684
958
|
unit/integration tests
|
|
959
|
+
8-agent continuity
|
|
960
|
+
Phase 07 integration contracts
|
|
685
961
|
production build
|
|
686
962
|
npm package contents
|
|
687
963
|
```
|
|
688
964
|
|
|
689
|
-
Version tags trigger the
|
|
690
|
-
|
|
691
|
-
The tag must match `package.json`:
|
|
692
|
-
|
|
693
|
-
```text
|
|
694
|
-
package.json: 0.3.x
|
|
695
|
-
Git tag: v0.3.x
|
|
696
|
-
```
|
|
965
|
+
Version tags trigger the Release workflow and npm Trusted Publishing.
|
|
697
966
|
|
|
698
967
|
See [CHANGELOG.md](CHANGELOG.md) for release history.
|
|
699
968
|
|