@abloatai/ablo 0.9.9 → 0.9.10

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,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.9.10
4
+
5
+ ### Patch Changes
6
+
7
+ - README: add a centered brand header (Ablo banner, tagline, Docs/Quickstart/Self-host/API/GitHub nav, and status badges).
8
+
3
9
  ## 0.9.9
4
10
 
5
11
  ### Patch Changes
package/README.md CHANGED
@@ -1,11 +1,28 @@
1
- # Ablo
2
-
3
- [![npm](https://img.shields.io/npm/v/@abloatai/ablo.svg)](https://www.npmjs.com/package/@abloatai/ablo)
4
- [![license](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](./LICENSE)
5
- [![types](https://img.shields.io/badge/types-included-blue.svg)](#)
6
- [![runtime](https://img.shields.io/badge/node-%E2%89%A524-brightgreen.svg)](#keys--runtime)
7
-
8
- **Let people and AI agents work on the same data without overwriting each other.**
1
+ <p align="center">
2
+ <a href="https://abloatai.com"><img src="assets/banner.png" alt="Ablo" width="480" /></a>
3
+ </p>
4
+
5
+ <p align="center">
6
+ <strong>Let people and AI agents work on the same data without overwriting each other.</strong>
7
+ </p>
8
+
9
+ <p align="center">
10
+ <a href="https://abloatai.com">Docs</a> ·
11
+ <a href="https://abloatai.com/quickstart">Quickstart</a> ·
12
+ <a href="https://abloatai.com/data-sources">Self-host</a> ·
13
+ <a href="https://abloatai.com/api">API</a> ·
14
+ <a href="https://github.com/Abloatai/ablo">GitHub</a>
15
+ </p>
16
+
17
+ <p align="center">
18
+ <a href="https://www.npmjs.com/package/@abloatai/ablo"><img src="https://img.shields.io/npm/v/@abloatai/ablo?style=flat-square&color=2563eb" alt="npm" /></a>
19
+ <a href="https://abloatai.com"><img src="https://img.shields.io/badge/docs-abloatai.com-2563eb?style=flat-square" alt="docs" /></a>
20
+ <a href="./LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-2563eb?style=flat-square" alt="license" /></a>
21
+ <img src="https://img.shields.io/badge/node-%E2%89%A524-22c55e?style=flat-square" alt="node >=24" />
22
+ <img src="https://img.shields.io/badge/types-included-2563eb?style=flat-square" alt="types included" />
23
+ </p>
24
+
25
+ ---
9
26
 
10
27
  When an agent and a person change the same thing at once, work gets lost: one
11
28
  edit silently clobbers another, or the agent acts on data that already moved.
@@ -19,11 +36,14 @@ agent claims the row. If someone else is already working on it, `claim` waits,
19
36
  re-reads the fresh row, then hands it over. No stale overwrite, no separate
20
37
  agent mutation path.
21
38
 
22
- Under the hood, you define a Zod schema once and get typed model clients for
23
- every actor:
39
+ Under the hood, you define your data once with a Zod schema and get the same
40
+ typed model client for every actor — people, server actions, and agents:
24
41
 
25
- ```txt
26
- schema -> ablo.<model>.create/retrieve/update/claim(...)
42
+ ```ts
43
+ await ablo.task.create({ data }) // create
44
+ await ablo.task.retrieve({ id }) // read
45
+ await ablo.task.update({ id, data }) // update
46
+ await using task = await ablo.task.claim({ id }) // claim for safe, slow agent work
27
47
  ```
28
48
 
29
49
  The schema is the public contract. It gives you typed model methods, realtime
@@ -31,8 +51,9 @@ fanout, React selectors, agent writes, and the HTTP/Data Source shape for
31
51
  non-JavaScript services. Every confirmed change shows up everywhere, and active
32
52
  claims are visible while the work is still in progress.
33
53
 
34
- [Get started](#quick-start) · point your coding agent at the shipped `llms.txt`
35
- · **upgrading?** see the [Version History & Migration Guide](./docs/migration.md)
54
+ **[Get started](#set-up)** &nbsp;·&nbsp; point your coding agent at the shipped
55
+ `llms.txt` &nbsp;·&nbsp; **upgrading?** see the
56
+ [Version History &amp; Migration Guide](./docs/migration.md)
36
57
 
37
58
  It works with the auth and database you already have. **Your database is the
38
59
  system of record — Ablo never hosts your data.** Ablo is the transaction layer
package/docs/api-keys.md CHANGED
@@ -23,6 +23,22 @@ Use API keys from trusted (server-side) runtimes:
23
23
 
24
24
  Never ship a secret API key to a browser bundle.
25
25
 
26
+ ## Publishable key (`pk_`) — browser-safe, read-only
27
+
28
+ For a read-only browser experience, a publishable key is safe to ship in the
29
+ bundle. Like a Stripe `pk_` or a Supabase anon key, it is long-lived,
30
+ org-scoped, and used **directly as the bearer** — never exchanged, never
31
+ expires, nothing to refresh:
32
+
33
+ ```ts
34
+ const ablo = Ablo({ apiKey: process.env.NEXT_PUBLIC_ABLO_PUBLISHABLE_KEY }); // pk_live_…
35
+ ```
36
+
37
+ A `pk_` grants **read-only** access to the org's data plane: it cannot write and
38
+ cannot reach any control-plane operation. The moment the browser needs to write
39
+ on a specific user's behalf, mint a short-lived `ek_` user session from your
40
+ backend instead (see the Sessions guide).
41
+
26
42
  ## Sandboxes and production
27
43
 
28
44
  Test and live keys are the same shape; the prefix names the environment:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abloatai/ablo",
3
- "version": "0.9.9",
3
+ "version": "0.9.10",
4
4
  "description": "State control API for AI agents and collaborative apps.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",