toolnet-memory 0.3.11 → 0.3.13
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/.env.example +0 -4
- package/README.md +428 -202
- package/bin/toolnet-memory +15 -42
- package/bundle/agy-hook.js +47 -47
- package/bundle/agy.js +31 -31
- package/bundle/api.js +15 -52
- package/bundle/auto-integrate.js +34 -33
- package/bundle/claude-hook.js +9 -9
- package/bundle/codex.js +28 -28
- package/bundle/config.js +17 -12
- package/bundle/context-runtime.js +9 -9
- package/bundle/context.js +12 -12
- package/bundle/continuity-certify.js +13 -50
- package/bundle/copilot-hook.js +13 -13
- package/bundle/cursor-hook.js +13 -13
- package/bundle/doctor.js +4 -6
- package/bundle/full-index.js +21 -22
- package/bundle/graph-index.js +3 -3
- package/bundle/graph-ui.js +3 -3
- package/bundle/grok-hook.js +13 -13
- package/bundle/help-cli.js +4 -4
- package/bundle/impact.js +3 -3
- package/bundle/incremental.js +3 -3
- package/bundle/init.js +37 -36
- package/bundle/kilo.js +2 -0
- package/bundle/kiro-hook.js +14 -14
- package/bundle/learner.js +4 -4
- package/bundle/mcp.js +18 -56
- package/bundle/memory-agent.js +7 -47
- package/bundle/opencode.js +27 -27
- package/bundle/project-manual.js +2 -2
- package/bundle/recovery-certify.js +13 -53
- package/bundle/runtime.js +11 -11
- package/bundle/semantic.js +5 -6
- package/bundle/snapshot.js +3 -3
- package/bundle/status-cli.js +4 -4
- package/bundle/toolnet-cli.js +2 -0
- package/bundle/work-continuity.js +5 -5
- package/package.json +1 -3
- package/bundle/model-cli.js +0 -2
- package/bundle/provider.js +0 -6
- package/bundle/setup.js +0 -1159
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.
|
|
30
32
|
|
|
31
|
-
ToolNet Memory is **not a raw transcript dump**.
|
|
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
|
+
---
|
|
36
|
+
|
|
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
|
-
|
|
152
|
-
|
|
153
|
-
Typical continuity includes:
|
|
196
|
+
Automatically configure detected integrations:
|
|
154
197
|
|
|
155
|
-
```
|
|
156
|
-
|
|
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
|
|
232
|
+
|
|
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
|
+
```
|
|
185
243
|
|
|
186
|
-
|
|
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
|
|
351
|
+
```
|
|
352
|
+
|
|
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
|
+
```
|
|
374
|
+
|
|
375
|
+
ToolNet surfaces:
|
|
376
|
+
|
|
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
|
|
190
395
|
```
|
|
191
396
|
|
|
192
|
-
|
|
397
|
+
In a project, the project ToolNet MCP and project continuity skill are the effective project-scoped versions.
|
|
193
398
|
|
|
194
|
-
|
|
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.
|
|
195
400
|
|
|
196
|
-
|
|
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,68 +694,19 @@ toolnet-memory session:codex-recover
|
|
|
412
694
|
toolnet-memory session:opencode-recover
|
|
413
695
|
```
|
|
414
696
|
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
---
|
|
418
|
-
|
|
419
|
-
## AI Providers and Models
|
|
420
|
-
|
|
421
|
-
ToolNet separates the reasoning model from the embedding model.
|
|
422
|
-
|
|
423
|
-
Run interactive setup:
|
|
424
|
-
|
|
425
|
-
```bash
|
|
426
|
-
toolnet-memory setup
|
|
427
|
-
```
|
|
428
|
-
|
|
429
|
-
View provider state:
|
|
430
|
-
|
|
431
|
-
```bash
|
|
432
|
-
toolnet-memory provider
|
|
433
|
-
toolnet-memory provider:list
|
|
434
|
-
toolnet-memory provider:status
|
|
435
|
-
toolnet-memory provider:test llm
|
|
436
|
-
toolnet-memory provider:test embedding
|
|
437
|
-
```
|
|
438
|
-
|
|
439
|
-
View or change the active model:
|
|
440
|
-
|
|
441
|
-
```bash
|
|
442
|
-
toolnet-memory model
|
|
443
|
-
toolnet-memory model status
|
|
444
|
-
toolnet-memory model list
|
|
445
|
-
toolnet-memory model set <model>
|
|
446
|
-
```
|
|
447
|
-
|
|
448
|
-
Canonical configuration uses:
|
|
449
|
-
|
|
450
|
-
```text
|
|
451
|
-
TOOLNET_LLM_PROVIDER
|
|
452
|
-
TOOLNET_LLM_API_KEY
|
|
453
|
-
TOOLNET_LLM_BASE_URL
|
|
454
|
-
TOOLNET_LLM_MODEL
|
|
455
|
-
|
|
456
|
-
TOOLNET_EMBEDDING_PROVIDER
|
|
457
|
-
TOOLNET_EMBEDDING_API_KEY
|
|
458
|
-
TOOLNET_EMBEDDING_BASE_URL
|
|
459
|
-
TOOLNET_EMBEDDING_MODEL
|
|
460
|
-
```
|
|
461
|
-
|
|
462
|
-
Optional LLM fallbacks are supported for transient failures such as timeouts, HTTP 408, 429, and 5xx responses.
|
|
697
|
+
Deep recovery is intentionally not run automatically on every startup.
|
|
463
698
|
|
|
464
699
|
---
|
|
465
700
|
|
|
466
701
|
## Storage
|
|
467
702
|
|
|
468
|
-
Supported
|
|
703
|
+
Supported modes include:
|
|
469
704
|
|
|
470
705
|
- Cloudflare R2,
|
|
471
706
|
- generic S3 / S3-compatible storage,
|
|
472
707
|
- local storage,
|
|
473
708
|
- Hugging Face S3 compatibility mode.
|
|
474
709
|
|
|
475
|
-
Projects remain isolated by stable ToolNet project identity.
|
|
476
|
-
|
|
477
710
|
A typical remote layout is:
|
|
478
711
|
|
|
479
712
|
```text
|
|
@@ -485,20 +718,12 @@ projects/<project>/
|
|
|
485
718
|
└── snapshots/
|
|
486
719
|
```
|
|
487
720
|
|
|
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.
|
|
721
|
+
Projects remain isolated by stable ToolNet project identity.
|
|
495
722
|
|
|
496
723
|
---
|
|
497
724
|
|
|
498
725
|
## Snapshots and Recovery
|
|
499
726
|
|
|
500
|
-
Create and restore project-scoped snapshots:
|
|
501
|
-
|
|
502
727
|
```bash
|
|
503
728
|
toolnet-memory snapshot:list
|
|
504
729
|
toolnet-memory snapshot:create "before refactor"
|
|
@@ -510,7 +735,7 @@ toolnet-memory recover
|
|
|
510
735
|
|
|
511
736
|
## Architecture Guard
|
|
512
737
|
|
|
513
|
-
|
|
738
|
+
Evaluate project rules and potentially dangerous changes:
|
|
514
739
|
|
|
515
740
|
```bash
|
|
516
741
|
toolnet-memory guard:check
|
|
@@ -519,13 +744,11 @@ toolnet-memory guard:check --command "rm -rf ..."
|
|
|
519
744
|
toolnet-memory guard:explain
|
|
520
745
|
```
|
|
521
746
|
|
|
522
|
-
The project manual and guard system are intended to reduce accidental violations of important project constraints.
|
|
523
|
-
|
|
524
747
|
---
|
|
525
748
|
|
|
526
749
|
## Background Service
|
|
527
750
|
|
|
528
|
-
|
|
751
|
+
Optional daemon commands:
|
|
529
752
|
|
|
530
753
|
```bash
|
|
531
754
|
toolnet-memory service:install
|
|
@@ -536,33 +759,33 @@ toolnet-memory service:stop
|
|
|
536
759
|
toolnet-memory service:remove
|
|
537
760
|
```
|
|
538
761
|
|
|
539
|
-
The
|
|
762
|
+
The daemon is optional; the core CLI does not require a permanent background service.
|
|
540
763
|
|
|
541
764
|
---
|
|
542
765
|
|
|
543
766
|
## CLI Help
|
|
544
767
|
|
|
545
|
-
|
|
768
|
+
Compact help:
|
|
546
769
|
|
|
547
770
|
```bash
|
|
548
771
|
toolnet-memory help
|
|
549
772
|
```
|
|
550
773
|
|
|
551
|
-
|
|
774
|
+
All commands:
|
|
552
775
|
|
|
553
776
|
```bash
|
|
554
777
|
toolnet-memory help --all
|
|
555
778
|
```
|
|
556
779
|
|
|
557
|
-
|
|
780
|
+
One command:
|
|
558
781
|
|
|
559
782
|
```bash
|
|
560
783
|
toolnet-memory help index
|
|
561
784
|
toolnet-memory help model
|
|
562
|
-
toolnet-memory help
|
|
785
|
+
toolnet-memory help integrate:cursor
|
|
563
786
|
```
|
|
564
787
|
|
|
565
|
-
Main
|
|
788
|
+
Main commands:
|
|
566
789
|
|
|
567
790
|
```text
|
|
568
791
|
GET STARTED
|
|
@@ -585,39 +808,19 @@ AI
|
|
|
585
808
|
model
|
|
586
809
|
provider
|
|
587
810
|
|
|
811
|
+
INTEGRATIONS
|
|
812
|
+
integrate:detect
|
|
813
|
+
integrate:auto
|
|
814
|
+
integrate:status
|
|
815
|
+
integrate:cursor
|
|
816
|
+
integrate:copilot
|
|
817
|
+
integrate:grok
|
|
818
|
+
|
|
588
819
|
SYSTEM
|
|
589
820
|
status
|
|
590
821
|
update
|
|
591
822
|
```
|
|
592
823
|
|
|
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
824
|
---
|
|
622
825
|
|
|
623
826
|
## Updating
|
|
@@ -626,7 +829,7 @@ Secret values are masked in normal CLI output.
|
|
|
626
829
|
toolnet-memory update
|
|
627
830
|
```
|
|
628
831
|
|
|
629
|
-
Or
|
|
832
|
+
Or:
|
|
630
833
|
|
|
631
834
|
```bash
|
|
632
835
|
npm install -g toolnet-memory@latest
|
|
@@ -641,12 +844,13 @@ ToolNet Memory processes source-code metadata, project instructions, agent activ
|
|
|
641
844
|
Important rules:
|
|
642
845
|
|
|
643
846
|
- Never commit `.env` files or credentials.
|
|
644
|
-
- Keep
|
|
847
|
+
- Keep passwords, API keys, and tokens out of `PROJECT.md`.
|
|
645
848
|
- Sanitize secrets before durable persistence.
|
|
646
849
|
- Never inject memory from another project.
|
|
647
850
|
- Treat raw coding-agent transcripts as sensitive.
|
|
648
851
|
- Keep deep recovery manual and bounded.
|
|
649
852
|
- Store global ToolNet credentials outside project repositories.
|
|
853
|
+
- Raw ToolNet session/history files are protected from normal agent access.
|
|
650
854
|
|
|
651
855
|
See [SECURITY.md](SECURITY.md) for vulnerability reporting.
|
|
652
856
|
|
|
@@ -667,6 +871,26 @@ npm run build:release
|
|
|
667
871
|
npm pack --dry-run
|
|
668
872
|
```
|
|
669
873
|
|
|
874
|
+
Phase 07 integration certification:
|
|
875
|
+
|
|
876
|
+
```bash
|
|
877
|
+
npm run release:certify:phase07
|
|
878
|
+
```
|
|
879
|
+
|
|
880
|
+
8-agent continuity certification:
|
|
881
|
+
|
|
882
|
+
```bash
|
|
883
|
+
npm run release:certify:8
|
|
884
|
+
```
|
|
885
|
+
|
|
886
|
+
Optional native CLI E2E certification:
|
|
887
|
+
|
|
888
|
+
```bash
|
|
889
|
+
npm run release:certify:native:optional
|
|
890
|
+
```
|
|
891
|
+
|
|
892
|
+
Native Cursor/Copilot/Grok binaries are not required for normal package release certification.
|
|
893
|
+
|
|
670
894
|
See [CONTRIBUTING.md](CONTRIBUTING.md) for contribution rules.
|
|
671
895
|
|
|
672
896
|
---
|
|
@@ -675,25 +899,27 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for contribution rules.
|
|
|
675
899
|
|
|
676
900
|
ToolNet Memory uses GitHub Actions for CI and npm releases.
|
|
677
901
|
|
|
678
|
-
|
|
902
|
+
The current release line is:
|
|
903
|
+
|
|
904
|
+
```text
|
|
905
|
+
npm package: toolnet-memory@0.3.11
|
|
906
|
+
Git tag: v0.3.11
|
|
907
|
+
```
|
|
908
|
+
|
|
909
|
+
Before release, the repository validates:
|
|
679
910
|
|
|
680
911
|
```text
|
|
681
912
|
lint
|
|
682
913
|
format
|
|
683
914
|
TypeScript
|
|
684
915
|
unit/integration tests
|
|
916
|
+
8-agent continuity
|
|
917
|
+
Phase 07 integration contracts
|
|
685
918
|
production build
|
|
686
919
|
npm package contents
|
|
687
920
|
```
|
|
688
921
|
|
|
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
|
-
```
|
|
922
|
+
Version tags trigger the Release workflow and npm Trusted Publishing.
|
|
697
923
|
|
|
698
924
|
See [CHANGELOG.md](CHANGELOG.md) for release history.
|
|
699
925
|
|