@andespindola/brainlink 0.1.0-beta.1 → 0.1.0-beta.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 CHANGED
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.0-beta.2
4
+
5
+ - Added MCP installation guidance for direct server configuration and local client stores.
6
+ - Documented MCP vault allowlisting with `BRAINLINK_ALLOWED_VAULTS`.
7
+ - Aligned the documented MCP tool list with the current server tools.
8
+ - Updated release documentation for the beta package line.
9
+
10
+ ## 0.1.0-beta.0
11
+
12
+ - Promoted the package from alpha to beta.
13
+ - Added built-in MCP stdio server distribution through `brainlink-mcp`.
14
+ - Added agent namespaces, auto-indexing on writes and file ingestion flows.
15
+ - Added S3-compatible bucket vault support and weighted graph relationships.
16
+
3
17
  ## 0.1.0-alpha.0
4
18
 
5
19
  - Added local-first Markdown vault indexing.
package/README.md CHANGED
@@ -380,6 +380,99 @@ Example MCP client configuration:
380
380
  }
381
381
  ```
382
382
 
383
+ For a locked-down setup, allowlist the vaults that MCP clients may access:
384
+
385
+ ```json
386
+ {
387
+ "mcpServers": {
388
+ "brainlink": {
389
+ "command": "brainlink-mcp",
390
+ "env": {
391
+ "BRAINLINK_ALLOWED_VAULTS": "/absolute/path/to/project-vault,/absolute/path/to/team-vault"
392
+ }
393
+ }
394
+ }
395
+ }
396
+ ```
397
+
398
+ ### Install In MCP Client Stores
399
+
400
+ Brainlink can be exposed to MCP-compatible client stores in two ways:
401
+
402
+ 1. Register the stdio server directly when the client accepts `mcpServers` configuration.
403
+ 2. Register the local plugin from this repository when the client supports a plugin gallery or local marketplace.
404
+
405
+ Direct MCP server setup:
406
+
407
+ ```bash
408
+ npm install -g @andespindola/brainlink@latest
409
+ command -v brainlink-mcp
410
+ ```
411
+
412
+ Use this server configuration in any MCP-compatible client that reads a JSON MCP manifest:
413
+
414
+ ```json
415
+ {
416
+ "mcpServers": {
417
+ "brainlink": {
418
+ "command": "brainlink-mcp"
419
+ }
420
+ }
421
+ }
422
+ ```
423
+
424
+ Local plugin gallery setup:
425
+
426
+ ```bash
427
+ npm install -g @andespindola/brainlink@latest
428
+ git clone https://github.com/andersonflima/brainlink.git "$HOME/brainlink"
429
+ mkdir -p "$HOME/plugins"
430
+ ln -s "$HOME/brainlink/plugins/brainlink" "$HOME/plugins/brainlink"
431
+ ```
432
+
433
+ Then register the plugin in the local marketplace file used by compatible clients:
434
+
435
+ ```bash
436
+ node <<'NODE'
437
+ const fs = require('node:fs')
438
+ const os = require('node:os')
439
+ const path = require('node:path')
440
+
441
+ const marketplacePath = path.join(os.homedir(), '.agents', 'plugins', 'marketplace.json')
442
+ const pluginEntry = {
443
+ name: 'brainlink',
444
+ source: {
445
+ source: 'local',
446
+ path: './plugins/brainlink'
447
+ },
448
+ policy: {
449
+ installation: 'AVAILABLE',
450
+ authentication: 'ON_INSTALL'
451
+ },
452
+ category: 'Productivity'
453
+ }
454
+
455
+ fs.mkdirSync(path.dirname(marketplacePath), { recursive: true })
456
+
457
+ const marketplace = fs.existsSync(marketplacePath)
458
+ ? JSON.parse(fs.readFileSync(marketplacePath, 'utf8'))
459
+ : {
460
+ name: 'local',
461
+ interface: {
462
+ displayName: 'Local'
463
+ },
464
+ plugins: []
465
+ }
466
+
467
+ const plugins = Array.isArray(marketplace.plugins) ? marketplace.plugins : []
468
+ marketplace.plugins = [...plugins.filter((plugin) => plugin?.name !== 'brainlink'), pluginEntry]
469
+
470
+ fs.writeFileSync(marketplacePath, `${JSON.stringify(marketplace, null, 2)}\n`)
471
+ NODE
472
+ ```
473
+
474
+ Restart the client after changing marketplace or MCP configuration so it reloads the Brainlink entry. The plugin starts `brainlink-mcp` and exposes the same tool set listed below.
475
+
383
476
  Available tools:
384
477
 
385
478
  - `brainlink_context`: read indexed context for a task or question.
@@ -387,7 +480,9 @@ Available tools:
387
480
  - `brainlink_add_note`: write durable Markdown memory and reindex.
388
481
  - `brainlink_add_file`: ingest a local file as a note and reindex.
389
482
  - `brainlink_index`: rebuild the vault index.
483
+ - `brainlink_stats`: read indexed vault statistics.
390
484
  - `brainlink_validate`: validate broken links and orphan notes.
485
+ - `brainlink_sync`: run index, stats, validation, broken-link and orphan checks in one call.
391
486
  - `brainlink_graph`: read indexed graph nodes and weighted links.
392
487
  - `brainlink_broken_links`: list unresolved wiki links.
393
488
  - `brainlink_orphans`: list disconnected notes.
@@ -646,11 +741,11 @@ Brainlink reads `brainlink.config.json` or `.brainlink.json` from the current wo
646
741
  "defaultSearchMode": "hybrid",
647
742
  "chunkSize": 1200
648
743
  }
744
+ ```
649
745
 
650
746
  `defaultAgent` is optional. When set, CLI and MCP calls that omit `--agent`/`agent` use this value automatically. If not set, behavior remains as before.
651
747
 
652
748
  `autoIndexOnWrite` is optional and defaults to `true`. Set it to `false` to defer indexing after writes.
653
- ```
654
749
 
655
750
  Use `"embeddingProvider": "none"` when you want FTS-only indexing.
656
751
 
@@ -763,17 +858,18 @@ Detailed notes:
763
858
  - HTTP API is local and unauthenticated.
764
859
  - Watch mode depends on the platform filesystem watcher.
765
860
 
766
- ## Alpha Scope
861
+ ## Beta Scope
767
862
 
768
- `0.1.0-alpha.0` is intended to prove the local-first memory loop:
863
+ The `0.1.0-beta` line is intended to stabilize the local-first memory loop:
769
864
 
770
865
  - Markdown as durable memory.
771
866
  - SQLite FTS plus local embeddings and semantic buckets as rebuildable retrieval index.
772
867
  - CLI as the primary agent interface.
773
868
  - HTTP graph API and frontend as inspection tools.
774
869
  - Agent namespaces to avoid context mixing.
870
+ - MCP tools for context retrieval, durable memory writes and graph maintenance.
775
871
 
776
- The alpha includes local semantic retrieval. Remote embedding providers, remote auth, advanced deduplication and graph editing are future milestones.
872
+ The beta includes local semantic retrieval. Remote embedding providers, remote auth, advanced deduplication and graph editing are future milestones.
777
873
 
778
874
  ## Security
779
875
 
@@ -523,7 +523,9 @@ Available MCP tools:
523
523
  - `brainlink_add_note`
524
524
  - `brainlink_add_file`
525
525
  - `brainlink_index`
526
+ - `brainlink_stats`
526
527
  - `brainlink_validate`
528
+ - `brainlink_sync`
527
529
  - `brainlink_graph`
528
530
  - `brainlink_broken_links`
529
531
  - `brainlink_orphans`
package/docs/RELEASE.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Brainlink releases are built from the CLI package. Do not publish until the package name, npm account and version are confirmed.
4
4
 
5
- ## Alpha Release Checklist
5
+ ## Beta Release Checklist
6
6
 
7
7
  1. Confirm `package.json` name, version, repository, license and bin entries.
8
8
  2. Run `npm install` from a clean checkout when dependencies changed.
@@ -51,9 +51,9 @@ The preferred path is the `Publish npm` GitHub Actions workflow:
51
51
  - GitHub Release `published`: runs checks, pack smoke, then publishes to npm with provenance.
52
52
  - Manual `workflow_dispatch`: runs a dry run by default. Disable `dry_run` only for an intentional manual publish.
53
53
  - Manual `workflow_dispatch` accepts an optional `dist_tag` override. Use `latest` only when the default npm install command should resolve to that version.
54
- - Prerelease versions publish under their prerelease dist-tag, for example `0.1.0-alpha.1` publishes with `--tag alpha`.
54
+ - Prerelease versions publish under their prerelease dist-tag, for example `0.1.0-beta.1` publishes with `--tag beta`.
55
55
 
56
- On `main`, the publish job checks npm before publishing. If the version already exists, it automatically bumps the package inside the runner to the next available version before checks, packing and publishing. For example, `0.1.0-alpha.4` becomes `0.1.0-alpha.5`.
56
+ On `main`, the publish job checks npm before publishing. If the version already exists, it automatically bumps the package inside the runner to the next available version before checks, packing and publishing. For example, `0.1.0-beta.4` becomes `0.1.0-beta.5`.
57
57
 
58
58
  The automatic bump is intentionally not pushed back to `main`. The branch stays protected, and npm remains the source of truth for the latest published package version.
59
59
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@andespindola/brainlink",
3
- "version": "0.1.0-beta.1",
3
+ "version": "0.1.0-beta.3",
4
4
  "description": "Local-first knowledge memory for agents with Markdown, backlinks, indexing and context retrieval.",
5
5
  "type": "module",
6
6
  "license": "MIT",