bilinc 2.3.1__tar.gz → 2.3.4__tar.gz

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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bilinc
3
- Version: 2.3.1
3
+ Version: 2.3.4
4
4
  Summary: Cloud-only memory SDK and MCP adapter for autonomous agents
5
5
  Author: Bilinc Team
6
6
  License-Expression: BUSL-1.1
@@ -56,7 +56,7 @@ Dynamic: license-file
56
56
 
57
57
  Retrieval answers *"what is similar to this?"*. Long-running agents also need to answer *"who wrote this state, was it verified, did it contradict what we already knew, and can we undo it?"* — that is the layer Bilinc provides.
58
58
 
59
- Bilinc 2.3.1 on PyPI is the public cloud-only package: a thin Python SDK, CLI, and MCP adapter for Bilinc Cloud. It does not ship the local StatePlane, storage backends, eval, observability, integrations, or server runtime internals.
59
+ Bilinc 2.3.4 on PyPI is the public cloud-only package: a thin Python SDK, CLI, and MCP adapter for Bilinc Cloud. It does not ship the local StatePlane, storage backends, eval, observability, integrations, or server runtime internals.
60
60
 
61
61
  > **Frozen regression receipt** — LongMemEval-s cleaned retrieval fixture, 500 questions: **Hit@5 98.0%**, **NDCG@5 0.913**, no LLM reranker, no paid API. This is an isolated retrieval guardrail, not a current hosted SLA, end-to-end agent score, or competitor ranking — see [Benchmark receipt](#benchmark-receipt) for the full scope and qualification.
62
62
 
@@ -93,13 +93,36 @@ The fastest path is `pip install -U bilinc`, `bilinc login`, then `bilinc quickt
93
93
  | --- | --- |
94
94
  | A hosted memory API for an agent or MCP client | The public cloud-only package from PyPI |
95
95
  | Local StatePlane, SQLite/PostgreSQL, benchmarks, or internals | This repository and the [architecture guide](docs/architecture.md) |
96
- | A hosted MCP connection | The [MCP setup guide](https://bilinc.space/docs/mcp) |
96
+ | A hosted MCP connection without a Python install | The [remote MCP setup guide](https://bilinc.space/docs/remote-mcp) |
97
97
 
98
98
  The public package is intentionally smaller than this repository. It does not bundle the internal StatePlane or local
99
99
  storage runtime.
100
100
 
101
101
  ## Start in 60 Seconds
102
102
 
103
+ ### Claude connector, without installing Python
104
+
105
+ Open **Customize → Connectors → Add custom connector** in Claude, name it Bilinc,
106
+ and paste `https://mcp.bilinc.space/mcp`. Sign in and choose read-only or read and
107
+ write access. The setup guide is [bilinc.space/mcp](https://bilinc.space/mcp).
108
+
109
+ For the remote connector in Claude Code:
110
+
111
+ ```bash
112
+ claude mcp add --transport http --scope user bilinc https://mcp.bilinc.space/mcp
113
+ ```
114
+
115
+ Then run `/mcp` and authenticate. The remote connector has ten tools; the Python
116
+ stdio adapter below has eight. Both connect to hosted Bilinc memory.
117
+
118
+ Recall in the remote connector shows how long ago each memory was last confirmed
119
+ and marks entries that are past their review window (90 days for facts, decisions,
120
+ how-tos and places; 1 day for working notes; events are never marked) as possibly
121
+ outdated. Nothing is hidden or deleted. Revising a memory with the same value
122
+ confirms it.
123
+
124
+ ### SDK and CLI
125
+
103
126
  ```bash
104
127
  pip install -U bilinc
105
128
  bilinc login
@@ -119,7 +142,7 @@ Cloud status check.
119
142
  To reproduce this release exactly:
120
143
 
121
144
  ```bash
122
- pip install -U bilinc==2.3.1
145
+ pip install -U bilinc==2.3.4
123
146
  ```
124
147
 
125
148
  If you prefer a browser guide, open https://bilinc.space/install and follow the
@@ -14,7 +14,7 @@
14
14
 
15
15
  Retrieval answers *"what is similar to this?"*. Long-running agents also need to answer *"who wrote this state, was it verified, did it contradict what we already knew, and can we undo it?"* — that is the layer Bilinc provides.
16
16
 
17
- Bilinc 2.3.1 on PyPI is the public cloud-only package: a thin Python SDK, CLI, and MCP adapter for Bilinc Cloud. It does not ship the local StatePlane, storage backends, eval, observability, integrations, or server runtime internals.
17
+ Bilinc 2.3.4 on PyPI is the public cloud-only package: a thin Python SDK, CLI, and MCP adapter for Bilinc Cloud. It does not ship the local StatePlane, storage backends, eval, observability, integrations, or server runtime internals.
18
18
 
19
19
  > **Frozen regression receipt** — LongMemEval-s cleaned retrieval fixture, 500 questions: **Hit@5 98.0%**, **NDCG@5 0.913**, no LLM reranker, no paid API. This is an isolated retrieval guardrail, not a current hosted SLA, end-to-end agent score, or competitor ranking — see [Benchmark receipt](#benchmark-receipt) for the full scope and qualification.
20
20
 
@@ -51,13 +51,36 @@ The fastest path is `pip install -U bilinc`, `bilinc login`, then `bilinc quickt
51
51
  | --- | --- |
52
52
  | A hosted memory API for an agent or MCP client | The public cloud-only package from PyPI |
53
53
  | Local StatePlane, SQLite/PostgreSQL, benchmarks, or internals | This repository and the [architecture guide](docs/architecture.md) |
54
- | A hosted MCP connection | The [MCP setup guide](https://bilinc.space/docs/mcp) |
54
+ | A hosted MCP connection without a Python install | The [remote MCP setup guide](https://bilinc.space/docs/remote-mcp) |
55
55
 
56
56
  The public package is intentionally smaller than this repository. It does not bundle the internal StatePlane or local
57
57
  storage runtime.
58
58
 
59
59
  ## Start in 60 Seconds
60
60
 
61
+ ### Claude connector, without installing Python
62
+
63
+ Open **Customize → Connectors → Add custom connector** in Claude, name it Bilinc,
64
+ and paste `https://mcp.bilinc.space/mcp`. Sign in and choose read-only or read and
65
+ write access. The setup guide is [bilinc.space/mcp](https://bilinc.space/mcp).
66
+
67
+ For the remote connector in Claude Code:
68
+
69
+ ```bash
70
+ claude mcp add --transport http --scope user bilinc https://mcp.bilinc.space/mcp
71
+ ```
72
+
73
+ Then run `/mcp` and authenticate. The remote connector has ten tools; the Python
74
+ stdio adapter below has eight. Both connect to hosted Bilinc memory.
75
+
76
+ Recall in the remote connector shows how long ago each memory was last confirmed
77
+ and marks entries that are past their review window (90 days for facts, decisions,
78
+ how-tos and places; 1 day for working notes; events are never marked) as possibly
79
+ outdated. Nothing is hidden or deleted. Revising a memory with the same value
80
+ confirms it.
81
+
82
+ ### SDK and CLI
83
+
61
84
  ```bash
62
85
  pip install -U bilinc
63
86
  bilinc login
@@ -77,7 +100,7 @@ Cloud status check.
77
100
  To reproduce this release exactly:
78
101
 
79
102
  ```bash
80
- pip install -U bilinc==2.3.1
103
+ pip install -U bilinc==2.3.4
81
104
  ```
82
105
 
83
106
  If you prefer a browser guide, open https://bilinc.space/install and follow the
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "bilinc"
7
- version = "2.3.1"
7
+ version = "2.3.4"
8
8
  description = "Cloud-only memory SDK and MCP adapter for autonomous agents"
9
9
  readme = "README.md"
10
10
  license = "BUSL-1.1"
@@ -1,4 +1,4 @@
1
- """Bilinc 2.3.1: cloud-only SDK for agent memory."""
1
+ """Bilinc 2.3.4: cloud-only SDK for agent memory."""
2
2
 
3
3
  from bilinc.client import (
4
4
  ACTIVATION_SIGNUP_URL,
@@ -25,7 +25,7 @@ from bilinc.client import (
25
25
  CloudClient,
26
26
  )
27
27
 
28
- __version__ = "2.3.1"
28
+ __version__ = "2.3.4"
29
29
  version = __version__
30
30
 
31
31
  __all__ = [
@@ -1,6 +1,6 @@
1
1
  """Bilinc Cloud client.
2
2
 
3
- Bilinc 2.3.1 is cloud-only: the PyPI package is a thin SDK and MCP adapter for
3
+ Bilinc 2.3.4 is cloud-only: the PyPI package is a thin SDK and MCP adapter for
4
4
  https://bilinc.space. Local self-hosted StatePlane internals are no longer
5
5
  shipped in the public package.
6
6
  """
@@ -18,10 +18,10 @@ from dataclasses import dataclass
18
18
  from pathlib import Path
19
19
  from typing import Any, Callable
20
20
 
21
- __version__ = "2.3.1"
21
+ __version__ = "2.3.4"
22
22
  DEFAULT_BASE_URL = "https://bilinc.space"
23
23
  SIGNUP_URL = "https://bilinc.space/signup"
24
- ACTIVATION_CAMPAIGN = "activation_2_3_0"
24
+ ACTIVATION_CAMPAIGN = "activation_2_3_4"
25
25
  ACTIVATION_SIGNUP_URL = (
26
26
  f"{SIGNUP_URL}?utm_source=pypi&utm_medium=cli&utm_campaign={ACTIVATION_CAMPAIGN}"
27
27
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bilinc
3
- Version: 2.3.1
3
+ Version: 2.3.4
4
4
  Summary: Cloud-only memory SDK and MCP adapter for autonomous agents
5
5
  Author: Bilinc Team
6
6
  License-Expression: BUSL-1.1
@@ -56,7 +56,7 @@ Dynamic: license-file
56
56
 
57
57
  Retrieval answers *"what is similar to this?"*. Long-running agents also need to answer *"who wrote this state, was it verified, did it contradict what we already knew, and can we undo it?"* — that is the layer Bilinc provides.
58
58
 
59
- Bilinc 2.3.1 on PyPI is the public cloud-only package: a thin Python SDK, CLI, and MCP adapter for Bilinc Cloud. It does not ship the local StatePlane, storage backends, eval, observability, integrations, or server runtime internals.
59
+ Bilinc 2.3.4 on PyPI is the public cloud-only package: a thin Python SDK, CLI, and MCP adapter for Bilinc Cloud. It does not ship the local StatePlane, storage backends, eval, observability, integrations, or server runtime internals.
60
60
 
61
61
  > **Frozen regression receipt** — LongMemEval-s cleaned retrieval fixture, 500 questions: **Hit@5 98.0%**, **NDCG@5 0.913**, no LLM reranker, no paid API. This is an isolated retrieval guardrail, not a current hosted SLA, end-to-end agent score, or competitor ranking — see [Benchmark receipt](#benchmark-receipt) for the full scope and qualification.
62
62
 
@@ -93,13 +93,36 @@ The fastest path is `pip install -U bilinc`, `bilinc login`, then `bilinc quickt
93
93
  | --- | --- |
94
94
  | A hosted memory API for an agent or MCP client | The public cloud-only package from PyPI |
95
95
  | Local StatePlane, SQLite/PostgreSQL, benchmarks, or internals | This repository and the [architecture guide](docs/architecture.md) |
96
- | A hosted MCP connection | The [MCP setup guide](https://bilinc.space/docs/mcp) |
96
+ | A hosted MCP connection without a Python install | The [remote MCP setup guide](https://bilinc.space/docs/remote-mcp) |
97
97
 
98
98
  The public package is intentionally smaller than this repository. It does not bundle the internal StatePlane or local
99
99
  storage runtime.
100
100
 
101
101
  ## Start in 60 Seconds
102
102
 
103
+ ### Claude connector, without installing Python
104
+
105
+ Open **Customize → Connectors → Add custom connector** in Claude, name it Bilinc,
106
+ and paste `https://mcp.bilinc.space/mcp`. Sign in and choose read-only or read and
107
+ write access. The setup guide is [bilinc.space/mcp](https://bilinc.space/mcp).
108
+
109
+ For the remote connector in Claude Code:
110
+
111
+ ```bash
112
+ claude mcp add --transport http --scope user bilinc https://mcp.bilinc.space/mcp
113
+ ```
114
+
115
+ Then run `/mcp` and authenticate. The remote connector has ten tools; the Python
116
+ stdio adapter below has eight. Both connect to hosted Bilinc memory.
117
+
118
+ Recall in the remote connector shows how long ago each memory was last confirmed
119
+ and marks entries that are past their review window (90 days for facts, decisions,
120
+ how-tos and places; 1 day for working notes; events are never marked) as possibly
121
+ outdated. Nothing is hidden or deleted. Revising a memory with the same value
122
+ confirms it.
123
+
124
+ ### SDK and CLI
125
+
103
126
  ```bash
104
127
  pip install -U bilinc
105
128
  bilinc login
@@ -119,7 +142,7 @@ Cloud status check.
119
142
  To reproduce this release exactly:
120
143
 
121
144
  ```bash
122
- pip install -U bilinc==2.3.1
145
+ pip install -U bilinc==2.3.4
123
146
  ```
124
147
 
125
148
  If you prefer a browser guide, open https://bilinc.space/install and follow the
@@ -12,9 +12,9 @@ import pytest
12
12
  def test_public_api_is_cloud_only():
13
13
  import bilinc
14
14
 
15
- assert bilinc.__version__ == "2.3.1"
16
- assert bilinc.version == "2.3.1"
17
- assert "utm_campaign=activation_2_3_0" in bilinc.ACTIVATION_SIGNUP_URL
15
+ assert bilinc.__version__ == "2.3.4"
16
+ assert bilinc.version == "2.3.4"
17
+ assert "utm_campaign=activation_2_3_4" in bilinc.ACTIVATION_SIGNUP_URL
18
18
  assert hasattr(bilinc, "Bilinc")
19
19
  assert hasattr(bilinc, "CloudClient")
20
20
  assert not hasattr(bilinc, "StatePlane")
@@ -75,7 +75,7 @@ def test_cloud_client_normalizes_base_url():
75
75
  from bilinc import CloudClient
76
76
 
77
77
  transport = RecordingTransport({"status": "ok"})
78
- client = CloudClient(api_key="bil_live_test", base_url="https://bilinc.space///", transport=transport)
78
+ client = CloudClient(api_key="bil_live_example", base_url="https://bilinc.space///", transport=transport)
79
79
 
80
80
  client.status()
81
81
 
@@ -87,7 +87,7 @@ def test_cloud_client_base_url_can_come_from_env(monkeypatch):
87
87
 
88
88
  monkeypatch.setenv("BILINC_BASE_URL", "http://127.0.0.1:9999/")
89
89
  transport = RecordingTransport({"status": "ok"})
90
- client = CloudClient(api_key="bil_live_test", transport=transport)
90
+ client = CloudClient(api_key="bil_live_example", transport=transport)
91
91
 
92
92
  client.status()
93
93
 
@@ -98,7 +98,7 @@ def test_cloud_client_commit_posts_to_hosted_api():
98
98
  from bilinc import CloudClient
99
99
 
100
100
  transport = RecordingTransport({"success": True, "id": "mem_123"})
101
- client = CloudClient(api_key="bil_live_test", base_url="https://bilinc.space", transport=transport)
101
+ client = CloudClient(api_key="bil_live_example", base_url="https://bilinc.space", transport=transport)
102
102
 
103
103
  result = client.commit("project.status", {"phase": "trial"}, memory_type="semantic", importance=0.8)
104
104
 
@@ -108,11 +108,11 @@ def test_cloud_client_commit_posts_to_hosted_api():
108
108
  "method": "POST",
109
109
  "url": "https://bilinc.space/api/cloud/memory/commit",
110
110
  "headers": {
111
- "Authorization": "Bearer bil_live_test",
111
+ "Authorization": "Bearer bil_live_example",
112
112
  "Content-Type": "application/json",
113
- "User-Agent": "bilinc-python/2.3.1",
113
+ "User-Agent": "bilinc-python/2.3.4",
114
114
  "X-Bilinc-Client": "python-sdk",
115
- "X-Bilinc-Client-Version": "2.3.1",
115
+ "X-Bilinc-Client-Version": "2.3.4",
116
116
  },
117
117
  "body": json.dumps(
118
118
  {
@@ -133,7 +133,7 @@ def test_cloud_client_recall_posts_to_hosted_api():
133
133
  from bilinc import CloudClient
134
134
 
135
135
  transport = RecordingTransport({"results": [{"key": "project.status"}]})
136
- client = CloudClient(api_key="bil_live_test", transport=transport)
136
+ client = CloudClient(api_key="bil_live_example", transport=transport)
137
137
 
138
138
  result = client.recall("trial status", profile="balanced", limit=5)
139
139
 
@@ -148,7 +148,7 @@ def test_cloud_client_recall_forwards_point_in_time_timestamp():
148
148
  from bilinc import CloudClient
149
149
 
150
150
  transport = RecordingTransport({"results": []})
151
- client = CloudClient(api_key="bil_live_test", transport=transport)
151
+ client = CloudClient(api_key="bil_live_example", transport=transport)
152
152
 
153
153
  client.recall(
154
154
  "deployment target",
@@ -167,7 +167,7 @@ def test_cloud_client_recall_forwards_point_in_time_timestamp():
167
167
  def test_cloud_client_rejects_an_unbounded_point_in_time_timestamp():
168
168
  from bilinc import BilincValidationError, CloudClient
169
169
 
170
- client = CloudClient(api_key="bil_live_test", transport=RecordingTransport({}))
170
+ client = CloudClient(api_key="bil_live_example", transport=RecordingTransport({}))
171
171
 
172
172
  with pytest.raises(BilincValidationError, match="query_timestamp"):
173
173
  client.recall("q", query_timestamp="x" * 65)
@@ -177,7 +177,7 @@ def test_cloud_client_status_reads_the_authenticated_status_endpoint():
177
177
  from bilinc import CloudClient
178
178
 
179
179
  transport = RecordingTransport({"status": "ok", "plan": {"key": "pro"}})
180
- client = CloudClient(api_key="bil_live_test", transport=transport)
180
+ client = CloudClient(api_key="bil_live_example", transport=transport)
181
181
 
182
182
  result = client.status()
183
183
 
@@ -187,8 +187,8 @@ def test_cloud_client_status_reads_the_authenticated_status_endpoint():
187
187
  "method": "GET",
188
188
  "url": "https://bilinc.space/api/cloud/status",
189
189
  "headers": {
190
- "Authorization": "Bearer bil_live_test",
191
- "User-Agent": "bilinc-python/2.3.1",
190
+ "Authorization": "Bearer bil_live_example",
191
+ "User-Agent": "bilinc-python/2.3.4",
192
192
  },
193
193
  "body": None,
194
194
  "timeout": 30.0,
@@ -200,7 +200,7 @@ def test_cloud_client_health_stays_on_the_public_service_endpoint():
200
200
  from bilinc import CloudClient
201
201
 
202
202
  transport = RecordingTransport({"status": "ok", "mode": "live_cloud"})
203
- client = CloudClient(api_key="bil_live_test", transport=transport)
203
+ client = CloudClient(api_key="bil_live_example", transport=transport)
204
204
 
205
205
  result = client.health()
206
206
 
@@ -261,7 +261,7 @@ def test_cli_signup_and_missing_key_failure(monkeypatch, capsys):
261
261
  assert main(["signup"]) == 0
262
262
  signup_out = capsys.readouterr()
263
263
  assert "https://bilinc.space/signup" in signup_out.out
264
- assert "activation_2_3_0" in signup_out.out
264
+ assert "activation_2_3_4" in signup_out.out
265
265
  assert "quicktest" in signup_out.out
266
266
 
267
267
  assert main(["commit", "--key", "smoke_key", "--value", "hello"]) == 1
@@ -305,7 +305,7 @@ def test_cli_start_login_doctor_quicktest_and_mcp_config(monkeypatch, capsys, tm
305
305
  assert "bilinc login --api-key <key>" in start_out.out
306
306
  assert "bilinc quicktest" in start_out.out
307
307
  assert "install_guide" in start_out.out
308
- assert "activation_2_3_0" in start_out.out
308
+ assert "activation_2_3_4" in start_out.out
309
309
 
310
310
  assert cli_main.main(["login", "--api-key", "bil_live_cli_test"]) == 0
311
311
  login_out = capsys.readouterr()
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes