@graphrefly/graphrefly 0.19.0 → 0.21.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.
Files changed (52) hide show
  1. package/README.md +20 -3
  2. package/dist/{chunk-JC2SN46B.js → chunk-2UDLYZHT.js} +3 -3
  3. package/dist/{chunk-YXR3WW3Q.js → chunk-4MQ2J6IG.js} +4 -4
  4. package/dist/{chunk-YXR3WW3Q.js.map → chunk-4MQ2J6IG.js.map} +1 -1
  5. package/dist/{chunk-XUOY3YKN.js → chunk-7IGHIFTT.js} +2 -2
  6. package/dist/{chunk-AHRKWMNI.js → chunk-DOSLSFKL.js} +3 -3
  7. package/dist/{chunk-BER7UYLM.js → chunk-ECN37NVS.js} +161 -199
  8. package/dist/chunk-ECN37NVS.js.map +1 -0
  9. package/dist/{chunk-YLR5JUJZ.js → chunk-G66H6ZRK.js} +3 -3
  10. package/dist/{chunk-IRZAGZUB.js → chunk-VOQFK7YN.js} +26 -2
  11. package/dist/chunk-VOQFK7YN.js.map +1 -0
  12. package/dist/{chunk-OO5QOAXI.js → chunk-XWBVAO2R.js} +22 -9
  13. package/dist/chunk-XWBVAO2R.js.map +1 -0
  14. package/dist/{chunk-UW77D7SP.js → chunk-ZTCDY5NQ.js} +3 -3
  15. package/dist/compat/nestjs/index.cjs +15 -6
  16. package/dist/compat/nestjs/index.cjs.map +1 -1
  17. package/dist/compat/nestjs/index.js +7 -7
  18. package/dist/core/index.cjs +3 -3
  19. package/dist/core/index.cjs.map +1 -1
  20. package/dist/core/index.d.cts +1 -1
  21. package/dist/core/index.d.ts +1 -1
  22. package/dist/core/index.js +3 -3
  23. package/dist/extra/index.cjs +183 -199
  24. package/dist/extra/index.cjs.map +1 -1
  25. package/dist/extra/index.d.cts +1 -1
  26. package/dist/extra/index.d.ts +1 -1
  27. package/dist/extra/index.js +7 -3
  28. package/dist/graph/index.cjs +1 -1
  29. package/dist/graph/index.cjs.map +1 -1
  30. package/dist/graph/index.js +4 -4
  31. package/dist/{index-CvKzv0AW.d.ts → index-BHfg_Ez3.d.ts} +1 -1
  32. package/dist/{index-BBUYZfJ1.d.cts → index-Bc_diYYJ.d.cts} +1 -1
  33. package/dist/{index-BnkMgNNa.d.ts → index-DuN3bhtm.d.ts} +47 -2
  34. package/dist/{index-Bjh5C1Tp.d.cts → index-SFzE_KTa.d.cts} +47 -2
  35. package/dist/index.cjs +463 -281
  36. package/dist/index.cjs.map +1 -1
  37. package/dist/index.d.cts +275 -10
  38. package/dist/index.d.ts +275 -10
  39. package/dist/index.js +284 -90
  40. package/dist/index.js.map +1 -1
  41. package/dist/patterns/reactive-layout/index.cjs +1 -1
  42. package/dist/patterns/reactive-layout/index.cjs.map +1 -1
  43. package/dist/patterns/reactive-layout/index.js +4 -4
  44. package/package.json +3 -2
  45. package/dist/chunk-BER7UYLM.js.map +0 -1
  46. package/dist/chunk-IRZAGZUB.js.map +0 -1
  47. package/dist/chunk-OO5QOAXI.js.map +0 -1
  48. /package/dist/{chunk-JC2SN46B.js.map → chunk-2UDLYZHT.js.map} +0 -0
  49. /package/dist/{chunk-XUOY3YKN.js.map → chunk-7IGHIFTT.js.map} +0 -0
  50. /package/dist/{chunk-AHRKWMNI.js.map → chunk-DOSLSFKL.js.map} +0 -0
  51. /package/dist/{chunk-YLR5JUJZ.js.map → chunk-G66H6ZRK.js.map} +0 -0
  52. /package/dist/{chunk-UW77D7SP.js.map → chunk-ZTCDY5NQ.js.map} +0 -0
package/README.md CHANGED
@@ -1,13 +1,13 @@
1
1
  # GraphReFly
2
2
 
3
- **Describe what matters. It watches, filters, and explains — persistently.**
3
+ **The reactive harness layer for agent workflows.** Describe in plain language, review visually, run persistently, trace every decision.
4
4
 
5
- You're buried under emails, alerts, feeds, and messages. You can't process it all. GraphReFly lets you describe automations in plain language, review them visually, run them persistently, and trace every decision back to its source.
5
+ GraphReFly makes long-running human + LLM co-operation reactive, resumable, and causally explainable. State pushes downstream on change (no re-reading), nodes have lifecycles (not infinite append), and every decision has a traceable causal chain the substrate underneath tools, agents, and personal automations.
6
6
 
7
7
  [![npm](https://img.shields.io/npm/v/@graphrefly/graphrefly?color=blue)](https://www.npmjs.com/package/@graphrefly/graphrefly)
8
8
  [![license](https://img.shields.io/github/license/graphrefly/graphrefly-ts)](./LICENSE)
9
9
 
10
- [Docs](https://graphrefly.dev) | [Spec](https://graphrefly.dev/spec/) | [Python API](https://graphrefly.dev/py/api/) | [API Reference](https://graphrefly.dev/api/node/)
10
+ [Docs](https://graphrefly.dev) | [Spec](https://graphrefly.dev/spec/) | [Python API](https://graphrefly.dev/py/api/) | [TS API Reference](https://graphrefly.dev/api/node/)
11
11
 
12
12
  ---
13
13
 
@@ -46,6 +46,23 @@ count.set(3);
46
46
 
47
47
  You describe what you need — an LLM composes a reactive graph (like SQL for data flows). The graph runs persistently, checkpoints its state, and traces every decision through a causal chain. Ask "why?" at any point and get a human-readable explanation from source to conclusion.
48
48
 
49
+ ## Harness engineering coverage
50
+
51
+ The eight requirements of a production agent harness cluster into a handful of composed blocks that sit on top of the reactive graph primitives:
52
+
53
+ | Need | GraphReFly |
54
+ |---|---|
55
+ | Context & state | `persistentState()` — `autoCheckpoint` + `snapshot` / `restore` + incremental diff |
56
+ | Agent memory | `agentMemory()` — `distill` + vectors + knowledge graph + tiers, OpenViking decay |
57
+ | Control flow & resilience | `resilientPipeline()` — `rateLimiter → breaker → retry → timeout → fallback`, correct ordering built in |
58
+ | Execution & policy | `guardedExecution()` — Actor / Guard ABAC + `policy()` + `budgetGate` + scoped describe |
59
+ | Observability & causality | `graphLens()` — reactive topology, health, flow, and `why(node)` causal chains as structured data |
60
+ | Human governance | `gate` — reactive `pending` / `isOpen` with `approve` / `reject` / `modify(fn, n)` |
61
+ | Verification | Multi-model eval harness with regression gates |
62
+ | Continuous improvement | Strategy model: `rootCause × intervention → successRate` |
63
+
64
+ The library computes structured facts reactively; LLMs and UIs render them. Natural language is never the library's job — which keeps the whole stack model-agnostic and testable.
65
+
49
66
  ## Why GraphReFly?
50
67
 
51
68
  | | Zustand / Jotai | RxJS | XState | LangGraph | TC39 Signals | **GraphReFly** |
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  describeNode,
3
3
  resolveDescribeFields
4
- } from "./chunk-XUOY3YKN.js";
4
+ } from "./chunk-7IGHIFTT.js";
5
5
  import {
6
6
  COMPLETE,
7
7
  DATA,
@@ -16,7 +16,7 @@ import {
16
16
  messageTier,
17
17
  monotonicNs,
18
18
  state
19
- } from "./chunk-YXR3WW3Q.js";
19
+ } from "./chunk-4MQ2J6IG.js";
20
20
 
21
21
  // src/graph/sizeof.ts
22
22
  var OVERHEAD = {
@@ -2114,4 +2114,4 @@ export {
2114
2114
  Graph,
2115
2115
  reachable
2116
2116
  };
2117
- //# sourceMappingURL=chunk-JC2SN46B.js.map
2117
+ //# sourceMappingURL=chunk-2UDLYZHT.js.map
@@ -1072,7 +1072,7 @@ var NodeImpl = class extends NodeBase {
1072
1072
  try {
1073
1073
  const consumed = this._onMessage(msg, index, this._actions);
1074
1074
  if (consumed) {
1075
- if (t === START) {
1075
+ if (t === START || t === DATA || t === RESOLVED) {
1076
1076
  this._depDirtyMask.clear(index);
1077
1077
  if (this._depDirtyMask.any() && this._depSettledMask.covers(this._depDirtyMask)) {
1078
1078
  this._depDirtyMask.reset();
@@ -1565,8 +1565,8 @@ function producer(fn, opts) {
1565
1565
  function derived(deps, fn, opts) {
1566
1566
  return node(deps, fn, { describeKind: "derived", ...opts });
1567
1567
  }
1568
- function effect(deps, fn) {
1569
- return node(deps, fn, { describeKind: "effect" });
1568
+ function effect(deps, fn, opts) {
1569
+ return node(deps, fn, { describeKind: "effect", ...opts });
1570
1570
  }
1571
1571
  function pipe(source, ...ops) {
1572
1572
  let current = source;
@@ -1628,4 +1628,4 @@ export {
1628
1628
  effect,
1629
1629
  pipe
1630
1630
  };
1631
- //# sourceMappingURL=chunk-YXR3WW3Q.js.map
1631
+ //# sourceMappingURL=chunk-4MQ2J6IG.js.map