@abloatai/ablo 0.9.8 → 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 +12 -0
- package/README.md +35 -14
- package/docs/api-keys.md +16 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
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
|
+
|
|
9
|
+
## 0.9.9
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- Docs: version history & migration guide refinements plus changelog, audit, and link fixes.
|
|
14
|
+
|
|
3
15
|
## 0.9.8
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -1,11 +1,28 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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
|
|
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
|
-
```
|
|
26
|
-
|
|
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
|
|
35
|
-
|
|
54
|
+
**[Get started](#set-up)** · point your coding agent at the shipped
|
|
55
|
+
`llms.txt` · **upgrading?** see the
|
|
56
|
+
[Version History & 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:
|