@graphrefly/graphrefly 0.1.0 → 0.4.0
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/README.md +17 -17
- package/dist/compat/nestjs/index.js +1 -1
- package/dist/index.js +8 -8
- package/package.json +11 -5
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
One primitive. Zero dependencies. Composable nodes with glitch-free diamond resolution, two-phase push propagation, durable streaming, and framework adapters for React, Vue, Svelte, Solid, and NestJS.
|
|
6
6
|
|
|
7
|
-
[](https://www.npmjs.com/package/@graphrefly/graphrefly)
|
|
8
8
|
[](./LICENSE)
|
|
9
9
|
|
|
10
10
|
[Docs](https://graphrefly.dev) | [Spec](https://graphrefly.dev/spec/) | [Python](https://py.graphrefly.dev) | [API Reference](https://graphrefly.dev/api/node/)
|
|
@@ -14,11 +14,11 @@ One primitive. Zero dependencies. Composable nodes with glitch-free diamond reso
|
|
|
14
14
|
## Quick start
|
|
15
15
|
|
|
16
16
|
```bash
|
|
17
|
-
npm install @graphrefly/graphrefly
|
|
17
|
+
npm install @graphrefly/graphrefly
|
|
18
18
|
```
|
|
19
19
|
|
|
20
20
|
```ts
|
|
21
|
-
import { state, derived, effect } from "@graphrefly/graphrefly
|
|
21
|
+
import { state, derived, effect } from "@graphrefly/graphrefly";
|
|
22
22
|
|
|
23
23
|
const count = state(0);
|
|
24
24
|
const doubled = derived([count], ([c]) => c * 2);
|
|
@@ -50,7 +50,7 @@ Most state libraries solve **one** problem well. GraphReFly solves the space bet
|
|
|
50
50
|
Everything is a `node`. Sugar constructors give you the right shape:
|
|
51
51
|
|
|
52
52
|
```ts
|
|
53
|
-
import { state, derived, producer, effect, pipe } from "@graphrefly/graphrefly
|
|
53
|
+
import { state, derived, producer, effect, pipe } from "@graphrefly/graphrefly";
|
|
54
54
|
|
|
55
55
|
// Writable state
|
|
56
56
|
const name = state("world");
|
|
@@ -76,7 +76,7 @@ const delayed = pipe(clock, delay(500), map(([, ts]) => new Date(ts)));
|
|
|
76
76
|
70+ operators — transform, combine, buffer, window, rate-limit, retry, circuit-break:
|
|
77
77
|
|
|
78
78
|
```ts
|
|
79
|
-
import { pipe, merge, switchMap, debounceTime, retry } from "@graphrefly/graphrefly
|
|
79
|
+
import { pipe, merge, switchMap, debounceTime, retry } from "@graphrefly/graphrefly";
|
|
80
80
|
|
|
81
81
|
const search = pipe(
|
|
82
82
|
input,
|
|
@@ -91,7 +91,7 @@ const search = pipe(
|
|
|
91
91
|
Register nodes in a `Graph` for introspection, snapshot, and persistence:
|
|
92
92
|
|
|
93
93
|
```ts
|
|
94
|
-
import { Graph, state, derived } from "@graphrefly/graphrefly
|
|
94
|
+
import { Graph, state, derived } from "@graphrefly/graphrefly";
|
|
95
95
|
|
|
96
96
|
const g = new Graph("pricing");
|
|
97
97
|
const price = g.register("price", state(100));
|
|
@@ -108,7 +108,7 @@ g.observe((e) => console.log(e)); // → live change stream
|
|
|
108
108
|
First-class patterns for LLM streaming, agent loops, and human-in-the-loop workflows:
|
|
109
109
|
|
|
110
110
|
```ts
|
|
111
|
-
import { chatStream, agentLoop, toolRegistry } from "@graphrefly/graphrefly
|
|
111
|
+
import { chatStream, agentLoop, toolRegistry } from "@graphrefly/graphrefly";
|
|
112
112
|
|
|
113
113
|
// Streaming chat with tool use
|
|
114
114
|
const chat = chatStream("assistant", {
|
|
@@ -129,23 +129,23 @@ Drop-in bindings — your framework, your way:
|
|
|
129
129
|
|
|
130
130
|
```tsx
|
|
131
131
|
// React
|
|
132
|
-
import { useNode } from "@graphrefly/graphrefly
|
|
132
|
+
import { useNode } from "@graphrefly/graphrefly/compat/react";
|
|
133
133
|
const [value, setValue] = useNode(count);
|
|
134
134
|
|
|
135
135
|
// Vue
|
|
136
|
-
import { useNode } from "@graphrefly/graphrefly
|
|
136
|
+
import { useNode } from "@graphrefly/graphrefly/compat/vue";
|
|
137
137
|
const value = useNode(count); // → Ref<number>
|
|
138
138
|
|
|
139
139
|
// Svelte
|
|
140
|
-
import { toStore } from "@graphrefly/graphrefly
|
|
140
|
+
import { toStore } from "@graphrefly/graphrefly/compat/svelte";
|
|
141
141
|
const value = toStore(count); // → Svelte store
|
|
142
142
|
|
|
143
143
|
// Solid
|
|
144
|
-
import { useNode } from "@graphrefly/graphrefly
|
|
144
|
+
import { useNode } from "@graphrefly/graphrefly/compat/solid";
|
|
145
145
|
const value = useNode(count); // → Signal<number>
|
|
146
146
|
|
|
147
147
|
// NestJS
|
|
148
|
-
import { GraphReflyModule } from "@graphrefly/graphrefly
|
|
148
|
+
import { GraphReflyModule } from "@graphrefly/graphrefly/compat/nestjs";
|
|
149
149
|
@Module({ imports: [GraphReflyModule.forRoot()] })
|
|
150
150
|
```
|
|
151
151
|
|
|
@@ -154,15 +154,15 @@ import { GraphReflyModule } from "@graphrefly/graphrefly-ts/compat/nestjs";
|
|
|
154
154
|
Prefer subpath imports for minimal bundle:
|
|
155
155
|
|
|
156
156
|
```ts
|
|
157
|
-
import { node, batch, DATA } from "@graphrefly/graphrefly
|
|
158
|
-
import { map, switchMap } from "@graphrefly/graphrefly
|
|
159
|
-
import { Graph } from "@graphrefly/graphrefly
|
|
157
|
+
import { node, batch, DATA } from "@graphrefly/graphrefly/core";
|
|
158
|
+
import { map, switchMap } from "@graphrefly/graphrefly/extra";
|
|
159
|
+
import { Graph } from "@graphrefly/graphrefly/graph";
|
|
160
160
|
```
|
|
161
161
|
|
|
162
162
|
The root entry re-exports everything:
|
|
163
163
|
|
|
164
164
|
```ts
|
|
165
|
-
import { node, map, Graph } from "@graphrefly/graphrefly
|
|
165
|
+
import { node, map, Graph } from "@graphrefly/graphrefly";
|
|
166
166
|
```
|
|
167
167
|
|
|
168
168
|
## Resilience & checkpoints
|
|
@@ -170,7 +170,7 @@ import { node, map, Graph } from "@graphrefly/graphrefly-ts";
|
|
|
170
170
|
Built-in retry, circuit breakers, rate limiters, and persistent checkpoints:
|
|
171
171
|
|
|
172
172
|
```ts
|
|
173
|
-
import { retry, circuitBreaker, saveGraphCheckpoint, FileCheckpointAdapter } from "@graphrefly/graphrefly
|
|
173
|
+
import { retry, circuitBreaker, saveGraphCheckpoint, FileCheckpointAdapter } from "@graphrefly/graphrefly";
|
|
174
174
|
|
|
175
175
|
// Retry with exponential backoff
|
|
176
176
|
const resilient = pipe(source, retry({ strategy: "exponential" }));
|
|
@@ -32,7 +32,6 @@ import {
|
|
|
32
32
|
observeSSE,
|
|
33
33
|
observeSubscription
|
|
34
34
|
} from "../../chunk-QW7H3ICI.js";
|
|
35
|
-
import "../../chunk-HP7OKEOE.js";
|
|
36
35
|
import "../../chunk-CP6MNKAA.js";
|
|
37
36
|
import {
|
|
38
37
|
observeGraph$,
|
|
@@ -40,6 +39,7 @@ import {
|
|
|
40
39
|
toMessages$,
|
|
41
40
|
toObservable
|
|
42
41
|
} from "../../chunk-KWXPDASV.js";
|
|
42
|
+
import "../../chunk-HP7OKEOE.js";
|
|
43
43
|
import "../../chunk-6W5SGIGB.js";
|
|
44
44
|
import "../../chunk-O3PI7W45.js";
|
|
45
45
|
import "../../chunk-5X3LAO3B.js";
|
package/dist/index.js
CHANGED
|
@@ -115,14 +115,6 @@ import {
|
|
|
115
115
|
cqrs_exports,
|
|
116
116
|
nestjs_exports
|
|
117
117
|
} from "./chunk-QW7H3ICI.js";
|
|
118
|
-
import {
|
|
119
|
-
JsonCodec,
|
|
120
|
-
createDagCborCodec,
|
|
121
|
-
createDagCborZstdCodec,
|
|
122
|
-
graph_exports,
|
|
123
|
-
negotiateCodec,
|
|
124
|
-
replayWAL
|
|
125
|
-
} from "./chunk-HP7OKEOE.js";
|
|
126
118
|
import {
|
|
127
119
|
core_exports
|
|
128
120
|
} from "./chunk-CP6MNKAA.js";
|
|
@@ -159,6 +151,14 @@ import {
|
|
|
159
151
|
toMessages$,
|
|
160
152
|
toObservable
|
|
161
153
|
} from "./chunk-KWXPDASV.js";
|
|
154
|
+
import {
|
|
155
|
+
JsonCodec,
|
|
156
|
+
createDagCborCodec,
|
|
157
|
+
createDagCborZstdCodec,
|
|
158
|
+
graph_exports,
|
|
159
|
+
negotiateCodec,
|
|
160
|
+
replayWAL
|
|
161
|
+
} from "./chunk-HP7OKEOE.js";
|
|
162
162
|
import {
|
|
163
163
|
reactive_layout_exports
|
|
164
164
|
} from "./chunk-Z4Y4FMQN.js";
|
package/package.json
CHANGED
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@graphrefly/graphrefly",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"packageManager": "pnpm@10.32.1+sha512.a706938f0e89ac1456b6563eab4edf1d1faf3368d1191fc5c59790e96dc918e4456ab2e67d613de1043d2e8c81f87303e6b40d4ffeca9df15ef1ad567348f2be",
|
|
5
5
|
"description": "Reactive graph protocol for human + LLM co-operation. Composable nodes, glitch-free diamond resolution, two-phase push, framework adapters (React/Vue/Svelte/Solid/NestJS), durable streaming. Zero dependencies.",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "https://github.com/graphrefly/graphrefly-ts"
|
|
9
|
+
},
|
|
10
|
+
"bugs": {
|
|
11
|
+
"url": "https://github.com/graphrefly/graphrefly-ts/issues"
|
|
12
|
+
},
|
|
13
|
+
"homepage": "https://graphrefly.dev",
|
|
6
14
|
"type": "module",
|
|
7
15
|
"sideEffects": false,
|
|
8
16
|
"main": "dist/index.cjs",
|
|
@@ -148,7 +156,6 @@
|
|
|
148
156
|
"access": "public"
|
|
149
157
|
},
|
|
150
158
|
"scripts": {
|
|
151
|
-
"prepublishOnly": "pnpm run build",
|
|
152
159
|
"docs:dev": "pnpm --dir website dev",
|
|
153
160
|
"docs:build": "pnpm --dir website build",
|
|
154
161
|
"docs:preview": "pnpm --dir website preview",
|
|
@@ -220,8 +227,7 @@
|
|
|
220
227
|
"@semantic-release/changelog": "^6.0.3",
|
|
221
228
|
"@semantic-release/commit-analyzer": "^13.0.0",
|
|
222
229
|
"@semantic-release/git": "^10.0.1",
|
|
223
|
-
"@semantic-release/github": "^
|
|
224
|
-
"@semantic-release/npm": "^12.0.0",
|
|
230
|
+
"@semantic-release/github": "^12.0.0",
|
|
225
231
|
"@semantic-release/release-notes-generator": "^14.0.1",
|
|
226
232
|
"@biomejs/biome": "2.4.6",
|
|
227
233
|
"@nestjs/common": "^11.1.17",
|
|
@@ -241,7 +247,7 @@
|
|
|
241
247
|
"rxjs": "^7.8.2",
|
|
242
248
|
"solid-js": "^1.9.12",
|
|
243
249
|
"svelte": "^5.55.1",
|
|
244
|
-
"semantic-release": "^
|
|
250
|
+
"semantic-release": "^25.0.3",
|
|
245
251
|
"tsup": "^8.5.1",
|
|
246
252
|
"typescript": "^5.7.0",
|
|
247
253
|
"vitest": "^3.0.0",
|