activegraph 1.0.0__py3-none-any.whl

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 (86) hide show
  1. activegraph/__init__.py +222 -0
  2. activegraph/__main__.py +5 -0
  3. activegraph/behaviors/__init__.py +1 -0
  4. activegraph/behaviors/base.py +153 -0
  5. activegraph/behaviors/decorators.py +218 -0
  6. activegraph/cli/__init__.py +17 -0
  7. activegraph/cli/main.py +793 -0
  8. activegraph/cli/quickstart.py +556 -0
  9. activegraph/core/__init__.py +1 -0
  10. activegraph/core/clock.py +46 -0
  11. activegraph/core/event.py +33 -0
  12. activegraph/core/graph.py +846 -0
  13. activegraph/core/ids.py +135 -0
  14. activegraph/core/patch.py +47 -0
  15. activegraph/core/view.py +59 -0
  16. activegraph/errors.py +345 -0
  17. activegraph/frame.py +15 -0
  18. activegraph/llm/__init__.py +51 -0
  19. activegraph/llm/anthropic.py +339 -0
  20. activegraph/llm/cache.py +180 -0
  21. activegraph/llm/errors.py +257 -0
  22. activegraph/llm/prompt.py +420 -0
  23. activegraph/llm/provider.py +66 -0
  24. activegraph/llm/recorded.py +270 -0
  25. activegraph/llm/types.py +130 -0
  26. activegraph/observability/__init__.py +61 -0
  27. activegraph/observability/logging.py +205 -0
  28. activegraph/observability/metrics.py +219 -0
  29. activegraph/observability/migration.py +404 -0
  30. activegraph/observability/prometheus.py +101 -0
  31. activegraph/observability/status.py +83 -0
  32. activegraph/packs/__init__.py +999 -0
  33. activegraph/packs/diligence/__init__.py +86 -0
  34. activegraph/packs/diligence/behaviors.py +447 -0
  35. activegraph/packs/diligence/fixtures/__init__.py +364 -0
  36. activegraph/packs/diligence/fixtures/companies.py +511 -0
  37. activegraph/packs/diligence/object_types.py +163 -0
  38. activegraph/packs/diligence/prompts/document_researcher.md +25 -0
  39. activegraph/packs/diligence/prompts/memo_synthesizer.md +35 -0
  40. activegraph/packs/diligence/prompts/question_generator.md +25 -0
  41. activegraph/packs/diligence/prompts/risk_identifier.md +26 -0
  42. activegraph/packs/diligence/settings.py +60 -0
  43. activegraph/packs/diligence/tools.py +124 -0
  44. activegraph/packs/loader.py +709 -0
  45. activegraph/packs/scaffold.py +317 -0
  46. activegraph/policy.py +20 -0
  47. activegraph/runtime/__init__.py +1 -0
  48. activegraph/runtime/behavior_graph.py +151 -0
  49. activegraph/runtime/budget.py +120 -0
  50. activegraph/runtime/config_errors.py +124 -0
  51. activegraph/runtime/diff.py +145 -0
  52. activegraph/runtime/errors.py +216 -0
  53. activegraph/runtime/exec_errors.py +232 -0
  54. activegraph/runtime/patterns.py +946 -0
  55. activegraph/runtime/queue.py +27 -0
  56. activegraph/runtime/registration_errors.py +291 -0
  57. activegraph/runtime/registry.py +111 -0
  58. activegraph/runtime/runtime.py +2441 -0
  59. activegraph/runtime/scheduler.py +206 -0
  60. activegraph/runtime/view_builder.py +65 -0
  61. activegraph/store/__init__.py +41 -0
  62. activegraph/store/base.py +66 -0
  63. activegraph/store/conformance.py +161 -0
  64. activegraph/store/errors.py +84 -0
  65. activegraph/store/memory.py +118 -0
  66. activegraph/store/postgres.py +609 -0
  67. activegraph/store/serde.py +202 -0
  68. activegraph/store/sqlite.py +446 -0
  69. activegraph/store/url.py +230 -0
  70. activegraph/tools/__init__.py +64 -0
  71. activegraph/tools/base.py +57 -0
  72. activegraph/tools/cache.py +157 -0
  73. activegraph/tools/context.py +48 -0
  74. activegraph/tools/decorators.py +70 -0
  75. activegraph/tools/errors.py +320 -0
  76. activegraph/tools/graph_query.py +94 -0
  77. activegraph/tools/recorded.py +205 -0
  78. activegraph/tools/web_fetch.py +80 -0
  79. activegraph/trace/__init__.py +1 -0
  80. activegraph/trace/causal.py +123 -0
  81. activegraph/trace/printer.py +495 -0
  82. activegraph-1.0.0.dist-info/METADATA +282 -0
  83. activegraph-1.0.0.dist-info/RECORD +86 -0
  84. activegraph-1.0.0.dist-info/WHEEL +5 -0
  85. activegraph-1.0.0.dist-info/entry_points.txt +5 -0
  86. activegraph-1.0.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,282 @@
1
+ Metadata-Version: 2.4
2
+ Name: activegraph
3
+ Version: 1.0.0
4
+ Summary: An event-sourced reactive graph runtime for long-running, auditable, agentic systems.
5
+ Author: Active Graph contributors
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/yoheinakajima/activegraph
8
+ Keywords: graph,agents,event-sourcing,runtime
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: Programming Language :: Python :: 3.11
11
+ Classifier: Programming Language :: Python :: 3.12
12
+ Classifier: License :: OSI Approved :: MIT License
13
+ Classifier: Operating System :: OS Independent
14
+ Classifier: Development Status :: 3 - Alpha
15
+ Requires-Python: >=3.11
16
+ Description-Content-Type: text/markdown
17
+ Requires-Dist: click<9,>=8
18
+ Requires-Dist: pydantic>=2
19
+ Provides-Extra: llm
20
+ Requires-Dist: anthropic>=0.40; extra == "llm"
21
+ Requires-Dist: pydantic>=2; extra == "llm"
22
+ Provides-Extra: sqlite
23
+ Provides-Extra: postgres
24
+ Requires-Dist: psycopg[binary]<4,>=3.1; extra == "postgres"
25
+ Provides-Extra: prometheus
26
+ Requires-Dist: prometheus_client>=0.20; extra == "prometheus"
27
+ Provides-Extra: all
28
+ Requires-Dist: anthropic>=0.40; extra == "all"
29
+ Requires-Dist: pydantic>=2; extra == "all"
30
+ Requires-Dist: psycopg[binary]<4,>=3.1; extra == "all"
31
+ Requires-Dist: prometheus_client>=0.20; extra == "all"
32
+ Provides-Extra: dev
33
+ Requires-Dist: pytest>=7; extra == "dev"
34
+ Requires-Dist: pydantic>=2; extra == "dev"
35
+ Requires-Dist: prometheus_client>=0.20; extra == "dev"
36
+ Requires-Dist: psycopg[binary]<4,>=3.1; extra == "dev"
37
+ Provides-Extra: docs
38
+ Requires-Dist: mkdocs>=1.6; extra == "docs"
39
+ Requires-Dist: mkdocs-material>=9.5; extra == "docs"
40
+ Requires-Dist: mkdocstrings[python]>=0.24; extra == "docs"
41
+
42
+ # Active Graph
43
+
44
+ > The graph is the world. Behaviors are physics. The trace is the proof.
45
+
46
+ An event-sourced reactive graph runtime for long-running, auditable,
47
+ agentic systems. Behaviors react to a shared graph instead of talking
48
+ to each other. Every change is traceable. Every run is resumable,
49
+ forkable, and diff-able from its event log.
50
+
51
+ If chat-based agents are a group conversation, Active Graph is a
52
+ shared workspace where everyone can see what changed, who changed
53
+ it, and why.
54
+
55
+ ## Try it in 30 seconds
56
+
57
+ ```bash
58
+ pip install activegraph
59
+ activegraph quickstart
60
+ ```
61
+
62
+ The bundled Diligence pack runs against recorded fixtures: no API
63
+ key, no configuration, byte-deterministic output. You see what the
64
+ framework does before you read about how it does it.
65
+
66
+ Then walk the 10-minute tutorial:
67
+
68
+ ```bash
69
+ activegraph quickstart --interactive
70
+ ```
71
+
72
+ It scaffolds a behavior, runs it against the same fixtures, and ends
73
+ with the fork-and-diff workflow — the framework's most differentiated
74
+ capability.
75
+
76
+ ## Install
77
+
78
+ ```bash
79
+ pip install activegraph # core runtime + SQLite store + Diligence pack
80
+ pip install "activegraph[llm]" # Anthropic provider
81
+ pip install "activegraph[postgres]" # Postgres-backed event store
82
+ pip install "activegraph[prometheus]" # Prometheus metrics
83
+ pip install "activegraph[all]" # everything
84
+ ```
85
+
86
+ Python 3.11+. Two hard dependencies (`click` for the CLI, `pydantic`
87
+ for the pack format); persistence backends and provider integrations
88
+ are opt-in extras.
89
+
90
+ ## What you get
91
+
92
+ - **Event-sourced graph runtime.** Objects + typed relations + an
93
+ append-only event log. Every mutation is an event; the trace is the
94
+ audit trail.
95
+ - **Reactive behaviors as first-class.** Function, class, LLM-backed,
96
+ or attached to typed edges (the relation-behavior primitive — edges
97
+ with logic). Subscriptions are event type + predicate + a Cypher
98
+ subset for graph-shape patterns.
99
+ - **Fork-and-diff.** Branch any run at any event into an independent
100
+ fork, configure it differently, and structurally diff the result
101
+ against the parent. Cache replay means the shared prefix doesn't
102
+ re-execute (no new LLM calls). Most agent frameworks can't do this.
103
+ - **Packs.** A pack bundles object types, behaviors, tools, prompts,
104
+ and policies for a specific domain. The bundled
105
+ [Diligence pack](activegraph/packs/diligence) is the reference:
106
+ 8 object types, 7 behaviors, 3 tools, recorded fixtures.
107
+ - **Per-error reference pages.** Every error message ends with a
108
+ `More:` link to a page that explains when it fires, why, and how to
109
+ fix it. Catalog at [docs.activegraph.ai/reference/errors](https://docs.activegraph.ai/reference/errors/).
110
+
111
+ ## Concepts at a glance
112
+
113
+ The framework's twelve primitives, in roughly the order you meet them
114
+ when reading a trace. Each links to its concept page on the doc site;
115
+ read those when you want depth on one piece.
116
+
117
+ - **Graph** — objects and typed relations forming the world the
118
+ framework reasons about. The graph is a projection of the event log;
119
+ every mutation is an event. [→ concepts/graph](https://docs.activegraph.ai/concepts/graph/)
120
+ - **Events** — the append-only history. Every behavior fires in
121
+ response to events and produces more events; the trace is the
122
+ ordered log of all of them. [→ concepts/events](https://docs.activegraph.ai/concepts/events/)
123
+ - **Behaviors** — the unit of reactive code. Function, class, or
124
+ LLM-backed; declares what events it subscribes to and what it
125
+ produces. The determinism contract is per-behavior. [→ concepts/behaviors](https://docs.activegraph.ai/concepts/behaviors/)
126
+ - **Relations** — typed edges between objects, with their own
127
+ behaviors. The relation-behavior primitive — coordination logic on
128
+ the edge, not on either endpoint — is uncommon in other agent
129
+ frameworks. [→ concepts/relations](https://docs.activegraph.ai/concepts/relations/)
130
+ - **Patches** — proposed mutations with optimistic concurrency.
131
+ Behaviors propose patches; the runtime applies or rejects them;
132
+ rejections are events in their own right. [→ concepts/patches](https://docs.activegraph.ai/concepts/patches/)
133
+ - **Views** — scoped reads of the graph for behavior context. Type
134
+ filters, depth filters, recent-event windows. Views are how
135
+ pattern-driven behaviors see only what they need to. [→ concepts/views](https://docs.activegraph.ai/concepts/views/)
136
+ - **Frames** — bounded contexts for a run. Goal, constraints, budget,
137
+ and the registered behaviors for this frame. A run can have one
138
+ frame or many. [→ concepts/frames](https://docs.activegraph.ai/concepts/frames/)
139
+ - **Policies** — approval and gating for behavior capabilities. Which
140
+ behaviors can call which tools, which mutations require human
141
+ approval, what the runtime refuses. [→ concepts/policies](https://docs.activegraph.ai/concepts/policies/)
142
+ - **Patterns** — the Cypher subset for pattern subscriptions. Beyond
143
+ event-type + predicate, behaviors can subscribe to graph shapes
144
+ (claim-cited-by-evidence, task-blocks-task, …) with `NOT EXISTS`
145
+ and temporal predicates. [→ concepts/patterns](https://docs.activegraph.ai/concepts/patterns/)
146
+ - **Replay** — re-execute a run from its event log. Strict mode
147
+ re-fires every behavior and fails on divergence; permissive mode
148
+ reconstructs state without re-firing. The LLM replay cache is what
149
+ makes fork cheap. [→ concepts/replay](https://docs.activegraph.ai/concepts/replay/)
150
+ - **Forking** — branch any run at any event into an independent
151
+ fork; structurally diff the fork against the parent. The framework's
152
+ mechanism for hypothesis testing on agentic systems. [→ concepts/forking](https://docs.activegraph.ai/concepts/forking/)
153
+ - **Failure model** — a behavior failure is a `behavior.failed`
154
+ event, not an exception. The audit trail captures failures as
155
+ first-class history. Exceptions live at runtime entry points only.
156
+ [→ concepts/failure-model](https://docs.activegraph.ai/concepts/failure-model/)
157
+
158
+ ## A small example
159
+
160
+ The relation-behavior primitive — coordination logic on the edge,
161
+ not on either endpoint:
162
+
163
+ ```python
164
+ from activegraph import Graph, Runtime, behavior, relation_behavior
165
+
166
+ graph = Graph()
167
+ runtime = Runtime(graph, budget={"max_events": 200, "max_seconds": 60})
168
+
169
+ @behavior(name="planner", on=["goal.created"])
170
+ def planner(event, graph, ctx):
171
+ research = graph.add_object("task", {"title": "Research", "status": "open"})
172
+ memo = graph.add_object("task", {"title": "Draft memo", "status": "blocked"})
173
+ graph.add_relation(research.id, memo.id, "depends_on")
174
+
175
+ @behavior(name="researcher", on=["object.created"], where={"object.type": "task"})
176
+ def researcher(event, graph, ctx):
177
+ task = event.payload["object"]
178
+ if task["data"]["status"] != "open" or "Research" not in task["data"]["title"]:
179
+ return
180
+ graph.add_object("claim", {"text": "Market early but growing.", "confidence": 0.7})
181
+ graph.emit("task.completed", {"task_id": task["id"]})
182
+
183
+ @relation_behavior(name="unblock", relation_type="depends_on", on=["task.completed"])
184
+ def unblock(relation, event, graph, ctx):
185
+ if event.payload["task_id"] == relation.source:
186
+ graph.patch_object(relation.target, {"status": "open"})
187
+
188
+ runtime.run_goal("Evaluate this startup idea")
189
+ runtime.print_trace()
190
+ ```
191
+
192
+ The `unblock` relation behavior fires only for events touching one of
193
+ its edge endpoints. The conceptual deep-dive on edges-with-logic is
194
+ in [`docs/concepts/relations.md`](https://docs.activegraph.ai/concepts/relations/).
195
+
196
+ ## Documentation
197
+
198
+ - **[docs.activegraph.ai](https://docs.activegraph.ai/)** — full doc site:
199
+ concepts, guides, cookbook, CLI reference, API reference, the
200
+ per-error catalog.
201
+ - **[10-minute tutorial](https://docs.activegraph.ai/quickstart/)** — install
202
+ to a working custom behavior, including fork-and-diff.
203
+ - **[CHANGELOG.md](CHANGELOG.md)** — every release, with per-version
204
+ migration notes.
205
+ - **[CONTRACT.md](CONTRACT.md)** — locked design decisions, version
206
+ by version. Useful when you want to know *why* something is the way
207
+ it is.
208
+ - **[examples/](examples)** — runnable end-to-end demos:
209
+ [`diligence_real_run.py`](examples/diligence_real_run.py),
210
+ [`resume_and_fork.py`](examples/resume_and_fork.py),
211
+ [`llm_claim_extraction.py`](examples/llm_claim_extraction.py),
212
+ [`diligence_with_tools.py`](examples/diligence_with_tools.py),
213
+ [`operate_a_run.py`](examples/operate_a_run.py).
214
+
215
+ ## What this is not
216
+
217
+ - Not a chat framework. If your problem fits in one conversation, use
218
+ a chat framework.
219
+ - Not a workflow engine. Workflows model control flow. This models
220
+ world state.
221
+ - Not a rules engine, exactly. Rules engines forward-chain over
222
+ facts. This event-sources over a graph and supports LLM behaviors
223
+ as first-class.
224
+ - Not a production graph database. The default store is SQLite,
225
+ optionally Postgres. For a high-throughput graph backend, plug one
226
+ in behind the `EventStore` protocol.
227
+ - Not magic. Bad behaviors produce bad graphs. The runtime makes the
228
+ badness inspectable, not absent.
229
+
230
+ ## Status
231
+
232
+ **v1.0 (stable)** (2026-05). The first-time-user gate per
233
+ [CONTRACT v1.0 #C4](CONTRACT.md#v10-c4-v10-ships-as-v10-rc1-first-time-user-gate-is-owned-externally)
234
+ ran through three rcs; v1.0 final ships rc3 plus a tutorial-step-7
235
+ output fix and a README "Concepts at a glance" index. See
236
+ [CHANGELOG.md](CHANGELOG.md) for the full v0 → v1.0 history and
237
+ per-version migration notes.
238
+
239
+ Major shipped milestones:
240
+
241
+ - **v1.0** — error hierarchy rewrite with per-error reference
242
+ pages, doc site at [docs.activegraph.ai](https://docs.activegraph.ai/),
243
+ `activegraph quickstart` command, mypy `--strict` and docstring
244
+ coverage CI gates, wheel-completeness and deploy-verification CI
245
+ gates.
246
+ - **v0.9** — pack format and the Diligence reference pack (8 object
247
+ types, 7 behaviors, 3 tools, recorded fixtures).
248
+ - **v0.8** — operator surface: structured logging, Prometheus
249
+ metrics, `runtime.status()`, full `activegraph` CLI,
250
+ `PostgresEventStore`.
251
+ - **v0.7** — `@tool` decorator, Cypher-subset pattern subscriptions,
252
+ temporal predicates.
253
+ - **v0.6** — `@llm_behavior` with structured output, frame-aware
254
+ prompt construction, cost accounting.
255
+ - **v0.5** — full event-log persistence, save/load across processes,
256
+ fork from any historical event, structural diff between runs.
257
+ - **v0** — core runtime: graph, behaviors, relation behaviors,
258
+ patches with optimistic concurrency, views, frames, policies,
259
+ budgets, the trace.
260
+
261
+ Roadmap items planned for v1.1 are tracked in
262
+ [CONTRACT.md § v1.1](CONTRACT.md).
263
+
264
+ ## License
265
+
266
+ MIT.
267
+
268
+ ## Contributing
269
+
270
+ The core runtime stays small and sharp. Contributions to packs,
271
+ backends, and LLM integrations are especially welcome. Open an issue
272
+ before large changes — the abstractions are still settling.
273
+
274
+ **Test discipline:** tests must remain deterministic. No live network
275
+ calls in CI. LLM and tool tests use recorded fixtures
276
+ (`RecordedLLMProvider`, `RecordedToolProvider`). If a contribution
277
+ adds a test that would only pass with a live API key or live HTTP,
278
+ it cannot land.
279
+
280
+ ---
281
+
282
+ The graph is the world. Behaviors are physics. The trace is the proof.
@@ -0,0 +1,86 @@
1
+ activegraph/__init__.py,sha256=L7h9O7eSpAa8zXHcg-ryreFUf7LYt2-l9IfgouMJIv4,5591
2
+ activegraph/__main__.py,sha256=llxXBaMVgcU891cIt3g4Cy0lk-eG5OcNHukSqoQjtxQ,118
3
+ activegraph/errors.py,sha256=oi9956rOBcHRkXjP5ewggxw60r7G0xFNi3R_bWLwZNk,12717
4
+ activegraph/frame.py,sha256=Wo35msB2gLFXLtk-rbO0OnyXchlvvuvOVuD2ImHjw2s,384
5
+ activegraph/policy.py,sha256=L2meukP8tyAS1bBF1xsJytOw_Y5tBRGkcfg-9OhameM,743
6
+ activegraph/behaviors/__init__.py,sha256=RiVSowhQZ27MYY-djO0uYiIof27mkv__rlXwI858Cfo,78
7
+ activegraph/behaviors/base.py,sha256=366fMvfjFhfdhKMHl_CE9yENDljUWD7Twl50NkQ7fr4,5487
8
+ activegraph/behaviors/decorators.py,sha256=wLY3Miyq0XRhIkSmvx2Q6_8tK8ZhNki4KnStzAPPWpU,7302
9
+ activegraph/cli/__init__.py,sha256=G_yz3MG14Yz78YmG9sbNYTd9d7-6afGI3SqUGVspCq4,521
10
+ activegraph/cli/main.py,sha256=xnBxQFBV_QDxkT_uv9va9OuNg5iIgvOnj6Ix5Nu82IM,26778
11
+ activegraph/cli/quickstart.py,sha256=Yr0FODUURDank0FOK0846aNsA1MyREiSNyi3vKJm2j0,20643
12
+ activegraph/core/__init__.py,sha256=qc5isDQs1xRdVf67KEvMvIeXEhzWwSpvslgpQkIKr7w,65
13
+ activegraph/core/clock.py,sha256=apCa10mtdHvg_oH5ihtnVFMI-YE8Yv13y94UYTcFUmY,1256
14
+ activegraph/core/event.py,sha256=seA7lS_Qha7uz4x9KxeolIOuzvXHtJPSVmQWDosD-NA,960
15
+ activegraph/core/graph.py,sha256=RiAC3bJcaSzbgZ4RTxJulZkw-HN80SnUUBnnKEWQCFE,29158
16
+ activegraph/core/ids.py,sha256=Mri3PxnuEZRHUal1Gu_dtIds5nAosj_LaSVYE5oi35A,4676
17
+ activegraph/core/patch.py,sha256=M4-moXMOzsibJfpM5OVhz62gwUK2BsBU-bWyA8naPTE,1448
18
+ activegraph/core/view.py,sha256=ESdC0aY7a-Rw-FcFQHoEAb76kQSEXMn7wO5qoO8pyAc,1668
19
+ activegraph/llm/__init__.py,sha256=8Wc1FIXkFX9D5X13KrkYJHHhbrZj8BJ3hTAqMWnt10g,1824
20
+ activegraph/llm/anthropic.py,sha256=2CPc7nO5D8eKPUOeqMzPRqVzMYsR33CgW-cEXn4hbiA,11730
21
+ activegraph/llm/cache.py,sha256=LvI6cpKXabcY9-eGCBBo00CGVR9y5Ren-k7q6qMsSZk,6388
22
+ activegraph/llm/errors.py,sha256=Y8UX2WvQYDL9Fetp5Qcc7-cZy1Qiqx8gP_BNr5NQx2U,11799
23
+ activegraph/llm/prompt.py,sha256=cg8LWKai8CqlTh2XpT83fhYJ8-AhhzWOiW3222AlwNg,13518
24
+ activegraph/llm/provider.py,sha256=gB9lmZ22KuSXXxd1P1_g3Ua8EO5agLZSU0g5JA1RJZM,1998
25
+ activegraph/llm/recorded.py,sha256=ZK9Ad92XFUX40qB8oZqIzzRB6PgXKLNKukmK2jDc0TQ,9029
26
+ activegraph/llm/types.py,sha256=hn1m4rHShQAkP144iVTa4TWuzwFXwru6wpeJAochX1E,4553
27
+ activegraph/observability/__init__.py,sha256=cBChBnlVO8Nolz13pkVcmkpNZdCgZ88uWt1hviZjHP4,1561
28
+ activegraph/observability/logging.py,sha256=ox-bczq34kdZ_76a4THRlt3HSYTFiYMM7jfDh-ZsOoM,6666
29
+ activegraph/observability/metrics.py,sha256=6rs7gt5VJ46TDtbnOQE716CnPRZTXm0LwbJsg5dWCjo,6572
30
+ activegraph/observability/migration.py,sha256=Gr6SlYavZkpyl0c5yZSKV_S3LW-DiXdI8lqk0pNBVo8,14183
31
+ activegraph/observability/prometheus.py,sha256=NkSm-ub_Q_eJn15iJ30fomdP6Re6DTSUvHgRdRDZN4w,3375
32
+ activegraph/observability/status.py,sha256=v3YexsS1ZZDGy7paKuzliqyV0gFDE3K0gN4Nkd5cRH4,2363
33
+ activegraph/packs/__init__.py,sha256=Ln6ad9X0aIWRfz7D7s9n74iv8l7r_N574sv_hMN5GY8,35971
34
+ activegraph/packs/loader.py,sha256=eIiuzrpuuO79X9NLFRwIkzUMvKL0WRBq1aEZhgeRyO8,29959
35
+ activegraph/packs/scaffold.py,sha256=817ymv0ijuUZhadbE_JVGgXxnRIerfoj_bwcE0qvzPQ,8343
36
+ activegraph/packs/diligence/__init__.py,sha256=Z4ePKbxauiznywlUYCDgYU9FMA81q090SmkstOynpF0,3033
37
+ activegraph/packs/diligence/behaviors.py,sha256=cMlckVaQ6iwctJqNFXSVvVzuLgDd66j259p40T4DbS4,15229
38
+ activegraph/packs/diligence/object_types.py,sha256=KywLMKi19l343G0i9i44IoOSPebR7wZl7kzx1n-LJA4,4926
39
+ activegraph/packs/diligence/settings.py,sha256=UwvZuyDrpmaFzM7mzXm48X3YuNTNUtzZrpqf7zDJKXQ,2269
40
+ activegraph/packs/diligence/tools.py,sha256=MAQImvXgI7lzajTbnz4pGePNGv5wlXAqx9SoP1_Qaqk,3618
41
+ activegraph/packs/diligence/fixtures/__init__.py,sha256=wW64z7OiKmfw0_ye0Hg0OJtpm3SeIpZkojqBbyGLj-U,12216
42
+ activegraph/packs/diligence/fixtures/companies.py,sha256=ozki5gbeHLrx_R3t99cRCuKIbO9Y1QjyHML2R_Pgzg4,24292
43
+ activegraph/packs/diligence/prompts/document_researcher.md,sha256=P4ky0sGO-PHe6QmvVXLaGxESQfFYQ7bJAA3_uyf2EU4,1041
44
+ activegraph/packs/diligence/prompts/memo_synthesizer.md,sha256=uqyOTDGz2s0sm3ZBuoLMuo395BdXN9yxwRxnNaVy_-4,1379
45
+ activegraph/packs/diligence/prompts/question_generator.md,sha256=Gg1jRLsGnX-LdXsTks_5xx9rgP0JAPfllqhWcy8T7zU,911
46
+ activegraph/packs/diligence/prompts/risk_identifier.md,sha256=Xs7ReQzsAaJ9o-bZOdQmi0IEy2-6wSUereH8XtyASP0,988
47
+ activegraph/runtime/__init__.py,sha256=amm1uU8YT7WTj6k1nF72U9ZDD9N_2-x5FAjkAMTYub8,51
48
+ activegraph/runtime/behavior_graph.py,sha256=9cmYh7yFva31EzQhGDWm0S08z5g4gRnctrUJMh-G9yc,5172
49
+ activegraph/runtime/budget.py,sha256=GlJUPguVdWZ9tdcRCwd-hJ5Pjp7FtVZOPgaONig4CoQ,4368
50
+ activegraph/runtime/config_errors.py,sha256=bHmVbvn8acdfZC8naEGG3tsVqs2wevP-pYTlJUbabS8,3922
51
+ activegraph/runtime/diff.py,sha256=VkDd9TfpsjjzTrW8HKlLXCkzxblymgN-2hpx0FE94PU,5053
52
+ activegraph/runtime/errors.py,sha256=4E02S8c7hjyAcZLC3jJFd9ytlyjXfFx-UW87Wh6r9o4,9339
53
+ activegraph/runtime/exec_errors.py,sha256=3wPxccdivB00fZK62e92rR87mkhBP0ZTMsOqpiYQK3Q,9912
54
+ activegraph/runtime/patterns.py,sha256=KFH4EeRQ9f79eruTu-s-Yh58nu1zkmUZoQzZUTyVUxg,35141
55
+ activegraph/runtime/queue.py,sha256=Ct0eKPhbRq_4ZBd2jJ4KISucNJX46VnOKUe-WRpwj3I,616
56
+ activegraph/runtime/registration_errors.py,sha256=1zwZLSKKo_TKt4QaEUCYzit0_9X_P8RxUDkng_Vyup0,11545
57
+ activegraph/runtime/registry.py,sha256=TxyJg_uoCoXr4rbci7alKfsnFFPyPinTSsMwzoxN9rI,3859
58
+ activegraph/runtime/runtime.py,sha256=-t1khv6g33yh02S-rO1AmmCaQ7Rmebm3xHdubBMM71E,100559
59
+ activegraph/runtime/scheduler.py,sha256=KQaVKPuAQ_XYGQM9F8K60wu4bVhCw7yw78Yh4jTKiXI,7404
60
+ activegraph/runtime/view_builder.py,sha256=NIp7n0Zj5290xdwrKfDpur6RoCt6xB25VHmes0EOwLk,1882
61
+ activegraph/store/__init__.py,sha256=T97zSLwgiVCvjmRhni9ijOATANc2D_k2GOoUaeaXsqM,1403
62
+ activegraph/store/base.py,sha256=W274nFexXe6FdhVdzVz_aNcftJkCndHrhTfp_PSrNRM,1855
63
+ activegraph/store/conformance.py,sha256=MuAzb0BAbei2vgNwQ17oZPjGDLQxguG6ykTv1WwmsLo,5460
64
+ activegraph/store/errors.py,sha256=egLqaUrsZxtO0SHhtvATe0laAypDwy3dEKFy9s4LTHw,3119
65
+ activegraph/store/memory.py,sha256=zpgJFymJw22dC4JorKAXJNgvRIxzfZ_t2PK-qr307x4,4808
66
+ activegraph/store/postgres.py,sha256=olejMn4IDXu1FqW5738GybWGZ1URv6d-ch944ipJVLk,22798
67
+ activegraph/store/serde.py,sha256=v7nJhlP7moug1qBn506h8vgKRVGqBMTtUilX42URfR0,8824
68
+ activegraph/store/sqlite.py,sha256=mt_6vHRW1WPl_K9wx9oWRMh1OfFBOZiR35P2hvR5_pM,16301
69
+ activegraph/store/url.py,sha256=t1kV0zn-akR1S4VjTDsgffzdC8HwPE_PasgnQd71Kww,8579
70
+ activegraph/tools/__init__.py,sha256=atcQfLQn-DPpGnE0cGy27vTATcfGVBfwFwNusAvdmlY,2343
71
+ activegraph/tools/base.py,sha256=xEnC2FVkRpTvs32e4rHW47jAKwPbzJRqGuDmOYqgXR8,2117
72
+ activegraph/tools/cache.py,sha256=eWMQKl5W3YvOaAdqetZ9AK6sz4Rrq7cxOr-42YZsmU0,5201
73
+ activegraph/tools/context.py,sha256=TjKkEcLhUv7_5pSwbZ8FexzH5AMQbex0aqrZUSjQzCk,1858
74
+ activegraph/tools/decorators.py,sha256=aPGeOGqsbsLIoRiYStjZavUIpCiIE9HyiWQe52dG5CA,1985
75
+ activegraph/tools/errors.py,sha256=UrSwAwPPFDQQyqesReRVYdHr_pFucg4tx_Io5ewVT6o,13972
76
+ activegraph/tools/graph_query.py,sha256=HHIb2G_CLudmSJTmYTllHKyRcQfTDF4IJKkk2npVDYY,3357
77
+ activegraph/tools/recorded.py,sha256=f8dKHMiYBF9g7cYXj0udSPiJ2bIaUr39gQ0QxHW6034,7007
78
+ activegraph/tools/web_fetch.py,sha256=An0HKIGqsvmC1Lm7SWtOn5MsJN__VT5IkfiIBsOrV6E,2541
79
+ activegraph/trace/__init__.py,sha256=0x8WsSczh97pTT2hMxwIWFwCZMSR0wJC2kRWRKbxUDo,77
80
+ activegraph/trace/causal.py,sha256=uZD9N50XAJkPpw4C2y8P6HWEGdZOfcHFDrU1XiXIjsQ,4673
81
+ activegraph/trace/printer.py,sha256=qTkPueatHYm0GHlCgMfErDXNQ5d3pIXgAn1nHYRs3Iw,17500
82
+ activegraph-1.0.0.dist-info/METADATA,sha256=tc-QW5A9G5fCeOx-mjE72CcaBbJ0sOS2SWQ0GIh-63U,12840
83
+ activegraph-1.0.0.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
84
+ activegraph-1.0.0.dist-info/entry_points.txt,sha256=dhpJ7jGTS24NzVDZrrN_-k29N3bCgRZLysVmz33l9rg,124
85
+ activegraph-1.0.0.dist-info/top_level.txt,sha256=-N9134CRIXyBGLncyVFkCzYUgNfpUR-_NItwz4Lvad0,12
86
+ activegraph-1.0.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (82.0.1)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,5 @@
1
+ [activegraph.packs]
2
+ diligence = activegraph.packs.diligence:pack
3
+
4
+ [console_scripts]
5
+ activegraph = activegraph.cli.main:main
@@ -0,0 +1 @@
1
+ activegraph