flowscript-agents 0.2.9__tar.gz → 0.3.0__tar.gz
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.
- flowscript_agents-0.3.0/.gitignore +19 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/PKG-INFO +60 -8
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/README.md +59 -7
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/flowscript_agents/__init__.py +6 -2
- flowscript_agents-0.3.0/flowscript_agents/client.py +638 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/flowscript_agents/embeddings/extract.py +26 -11
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/flowscript_agents/explain.py +138 -2
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/flowscript_agents/mcp.py +104 -3
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/flowscript_agents/memory.py +12 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/flowscript_agents/query.py +147 -2
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/flowscript_agents/tool-integrity.json +3 -1
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/pyproject.toml +1 -1
- flowscript_agents-0.3.0/tests/test_client.py +470 -0
- flowscript_agents-0.3.0/tests/test_cloud_fixpoint.py +210 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/tests/test_explain.py +69 -1
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/tests/test_mcp.py +66 -4
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/tests/test_memory.py +68 -0
- flowscript_agents-0.2.9/.gitignore +0 -12
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/.github/workflows/test.yml +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/AUDIT_TRAIL_DESIGN.md +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/docs/adapters.md +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/docs/api-reference.md +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/docs/audit-trail.md +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/docs/brand/logo-512.png +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/docs/brand/social-preview.png +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/docs/flowscript-demo.png +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/docs/lifecycle.md +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/examples/CLAUDE.md.example +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/examples/langgraph_live_test.py +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/examples/temporal_e2e_test.py +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/flowscript_agents/audit.py +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/flowscript_agents/camel_ai.py +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/flowscript_agents/cloud.py +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/flowscript_agents/crewai.py +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/flowscript_agents/embeddings/__init__.py +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/flowscript_agents/embeddings/_utils.py +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/flowscript_agents/embeddings/consolidate.py +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/flowscript_agents/embeddings/index.py +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/flowscript_agents/embeddings/providers.py +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/flowscript_agents/embeddings/search.py +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/flowscript_agents/fixpoint.py +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/flowscript_agents/google_adk.py +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/flowscript_agents/haystack.py +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/flowscript_agents/langgraph.py +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/flowscript_agents/llamaindex.py +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/flowscript_agents/openai_agents.py +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/flowscript_agents/pydantic_ai.py +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/flowscript_agents/smolagents.py +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/flowscript_agents/types.py +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/flowscript_agents/unified.py +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/scripts/validate_dedup_threshold.py +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/tests/conftest.py +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/tests/test_audit.py +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/tests/test_camel_ai.py +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/tests/test_cloud.py +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/tests/test_consolidation.py +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/tests/test_crewai.py +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/tests/test_embeddings.py +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/tests/test_fixpoint.py +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/tests/test_google_adk.py +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/tests/test_haystack.py +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/tests/test_langgraph.py +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/tests/test_llamaindex.py +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/tests/test_openai_agents.py +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/tests/test_pydantic_ai.py +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/tests/test_smolagents.py +0 -0
- {flowscript_agents-0.2.9 → flowscript_agents-0.3.0}/tests/test_temporal.py +0 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
__pycache__/
|
|
2
|
+
*.pyc
|
|
3
|
+
*.pyo
|
|
4
|
+
*.egg-info/
|
|
5
|
+
dist/
|
|
6
|
+
build/
|
|
7
|
+
.venv/
|
|
8
|
+
*.tmp
|
|
9
|
+
.flowscript-*
|
|
10
|
+
*.jsonl
|
|
11
|
+
|
|
12
|
+
.DS_Store
|
|
13
|
+
|
|
14
|
+
# Development-only validation scripts (hardcoded local paths)
|
|
15
|
+
e2e_compliance_chain.py
|
|
16
|
+
validate_wrapper.py
|
|
17
|
+
validate_autonomous_agent.py
|
|
18
|
+
e2e_output/
|
|
19
|
+
validation_output/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: flowscript-agents
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.0
|
|
4
4
|
Summary: Complete agent memory: reasoning queries + vector search + auto-extraction. Decision intelligence for LangGraph, CrewAI, Google ADK, OpenAI Agents SDK, Pydantic AI, smolagents, LlamaIndex, Haystack, and CAMEL-AI.
|
|
5
5
|
Project-URL: Homepage, https://flowscript.org
|
|
6
6
|
Project-URL: Repository, https://github.com/phillipclapham/flowscript-agents
|
|
@@ -70,9 +70,11 @@ Description-Content-Type: text/markdown
|
|
|
70
70
|
|
|
71
71
|
<p align="center"><strong>Your AI agents make decisions they can't explain. FlowScript makes those decisions queryable.</strong></p>
|
|
72
72
|
|
|
73
|
-
<p align="center">Drop-in adapters for 9 agent frameworks. Plain text in, typed reasoning queries out.<br>Hash-chained audit trail.
|
|
73
|
+
<p align="center">Drop-in adapters for 9 agent frameworks. Plain text in, typed reasoning queries out.<br>Hash-chained audit trail. Convergence certificates. CloudClient for independent witnessing. MIT licensed.</p>
|
|
74
74
|
|
|
75
|
-
|
|
75
|
+
<p align="center"><em>EU AI Act enforcement begins August 2026. Audit trails can't be backdated.<br>FlowScript is the compliance engine that makes your agents audit-ready from day one.</em></p>
|
|
76
|
+
|
|
77
|
+
[](https://github.com/phillipclapham/flowscript-agents) [](https://pypi.org/project/flowscript-agents/) [](LICENSE) [](https://pypi.org/project/flowscript-agents/)
|
|
76
78
|
|
|
77
79
|
---
|
|
78
80
|
|
|
@@ -357,6 +359,55 @@ Events are dispatched in order (single worker thread). Callback failures log to
|
|
|
357
359
|
|
|
358
360
|
---
|
|
359
361
|
|
|
362
|
+
## @fix — Convergence Certificates
|
|
363
|
+
|
|
364
|
+
When FlowScript's consolidation engine resolves contradictions — creating tensions, updating beliefs, unblocking decisions — it produces **convergence certificates**: hash-chained attestations that prove how the reasoning graph changed and that the transformation hasn't been tampered with.
|
|
365
|
+
|
|
366
|
+
```python
|
|
367
|
+
from flowscript_agents import Memory, MemoryOptions, AuditConfig
|
|
368
|
+
|
|
369
|
+
mem = Memory.load_or_create("agent.json", options=MemoryOptions(
|
|
370
|
+
audit=AuditConfig(retention_months=84)
|
|
371
|
+
))
|
|
372
|
+
|
|
373
|
+
# UnifiedMemory consolidation produces certificates automatically:
|
|
374
|
+
# initial_graph_hash → delta_sequence → final_graph_hash → certificate_hash
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
Each certificate records: the graph state before consolidation (`initial_hash`), what changed (`delta_sequence`), the graph state after (`final_hash`), and a hash proving the record is tamper-evident (`certificate_hash`). This is concrete Article 86 infrastructure — an auditor can verify not just what your agent decided, but how it got there.
|
|
378
|
+
|
|
379
|
+
**Underlying formal model:** FlowScript's `@fix` operator provides stratified fixpoint computation over typed reasoning graphs — L0 (pure description, always terminates), L1 (bounded fixpoint, Knaster-Tarski guarantees), L2 (general fixpoint, Turing-complete, bounded). Consolidation is a degenerate L1 fixpoint (single iteration). Full spec: [`fixpoint_spec.md`](https://github.com/phillipclapham/flowscript/blob/main/spec/fixpoint_spec.md).
|
|
380
|
+
|
|
381
|
+
---
|
|
382
|
+
|
|
383
|
+
## FlowScript Cloud — Independent Cryptographic Witnessing *(Coming Soon)*
|
|
384
|
+
|
|
385
|
+
Local audit trails are tamper-evident but self-attested. FlowScript Cloud will add independent verification: your SDK streams events to the Cloud service, which verifies chain continuity and stores witness attestations.
|
|
386
|
+
|
|
387
|
+
The CloudClient is included in the SDK and ready for integration. The Cloud service is under development.
|
|
388
|
+
|
|
389
|
+
```python
|
|
390
|
+
from flowscript_agents import Memory, MemoryOptions, AuditConfig
|
|
391
|
+
from flowscript_agents.cloud import CloudClient
|
|
392
|
+
|
|
393
|
+
cloud = CloudClient() # reads FLOWSCRIPT_API_KEY from env
|
|
394
|
+
|
|
395
|
+
mem = Memory.load_or_create("agent.json", options=MemoryOptions(
|
|
396
|
+
audit=AuditConfig(on_event=cloud.queue_event)
|
|
397
|
+
))
|
|
398
|
+
```
|
|
399
|
+
|
|
400
|
+
**CloudClient features:**
|
|
401
|
+
- **Batch buffering** — events accumulate and flush in batches (configurable `batch_size`, default 50)
|
|
402
|
+
- **Lock-free I/O** — network operations never block your agent's main thread
|
|
403
|
+
- **Buffer overflow protection** — `max_buffer_size` cap prevents memory growth
|
|
404
|
+
- **Witness tracking** — `cloud.last_witness` returns the most recent attestation
|
|
405
|
+
- **Retry with backoff** — transient failures retry automatically
|
|
406
|
+
|
|
407
|
+
**Planned deployment tiers:** SaaS, self-hosted Cloudflare, or Docker on-premise. BSL 1.1 licensed.
|
|
408
|
+
|
|
409
|
+
---
|
|
410
|
+
|
|
360
411
|
## Session Lifecycle — How Memory Gets Smarter
|
|
361
412
|
|
|
362
413
|
Just like a mind needs sleep to consolidate memories, your agent's reasoning graph needs regular session wraps to develop intelligence over time. Without consolidation cycles, knowledge accumulates as noise instead of maturing.
|
|
@@ -497,14 +548,14 @@ text = explain(result, audience="legal")
|
|
|
497
548
|
│ ┌──────────┐ ┌──────────┐ ┌──────────────────────┐ │
|
|
498
549
|
│ │ Memory │ │ Queries │ │ Audit Trail │ │
|
|
499
550
|
│ │ (graph) │ │ (5 ops) │ │ (SHA-256 hash chain) │ │
|
|
500
|
-
│ │
|
|
501
|
-
│ └──────────┘ └──────────┘ └──────────────────────┘ │
|
|
551
|
+
│ │ @fix │ │explain() │ │ on_event_async ─────────→ FlowScript Cloud
|
|
552
|
+
│ └──────────┘ └──────────┘ └──────────────────────┘ │ (independent witness)
|
|
502
553
|
├─────────────────────────────────────────────────────┤
|
|
503
554
|
│ Your Storage (files, database, cloud) │
|
|
504
555
|
└─────────────────────────────────────────────────────┘
|
|
505
556
|
```
|
|
506
557
|
|
|
507
|
-
FlowScript doesn't replace your stack. It sits between your agent framework and your storage, adding typed reasoning and audit to whatever you already use.
|
|
558
|
+
FlowScript doesn't replace your stack. It sits between your agent framework and your storage, adding typed reasoning and audit to whatever you already use. Optionally stream audit events to FlowScript Cloud *(coming soon)* for independent cryptographic witnessing.
|
|
508
559
|
|
|
509
560
|
---
|
|
510
561
|
|
|
@@ -550,11 +601,12 @@ The applications are what you install FlowScript for. The infrastructure is why
|
|
|
550
601
|
|
|
551
602
|
| Package | What | Install |
|
|
552
603
|
|:--------|:-----|:--------|
|
|
553
|
-
| [flowscript-agents](https://pypi.org/project/flowscript-agents/) | Python SDK — 9 adapters, unified memory, consolidation, audit trail | `pip install flowscript-agents openai` |
|
|
604
|
+
| [flowscript-agents](https://pypi.org/project/flowscript-agents/) | Python SDK — 9 adapters, CloudClient, unified memory, consolidation, audit trail | `pip install flowscript-agents openai` |
|
|
554
605
|
| [flowscript-core](https://www.npmjs.com/package/flowscript-core) | TypeScript SDK — Memory class, 15 tools, token budgeting, audit trail | `npm install flowscript-core` |
|
|
606
|
+
| [flowscript-cloud](https://github.com/phillipclapham/flowscript-cloud) | Cloud witnessing service — chain verification, witness attestations, RBAC | *Coming soon* |
|
|
555
607
|
| [flowscript.org](https://flowscript.org) | Web editor, D3 visualization, live query panel | Browser |
|
|
556
608
|
|
|
557
|
-
|
|
609
|
+
**~1,400+ tests** across Python (590+), TypeScript (779), and Cloud (68). Same audit trail format and canonical JSON serialization across both languages.
|
|
558
610
|
|
|
559
611
|
### Docs
|
|
560
612
|
|
|
@@ -6,9 +6,11 @@
|
|
|
6
6
|
|
|
7
7
|
<p align="center"><strong>Your AI agents make decisions they can't explain. FlowScript makes those decisions queryable.</strong></p>
|
|
8
8
|
|
|
9
|
-
<p align="center">Drop-in adapters for 9 agent frameworks. Plain text in, typed reasoning queries out.<br>Hash-chained audit trail.
|
|
9
|
+
<p align="center">Drop-in adapters for 9 agent frameworks. Plain text in, typed reasoning queries out.<br>Hash-chained audit trail. Convergence certificates. CloudClient for independent witnessing. MIT licensed.</p>
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
<p align="center"><em>EU AI Act enforcement begins August 2026. Audit trails can't be backdated.<br>FlowScript is the compliance engine that makes your agents audit-ready from day one.</em></p>
|
|
12
|
+
|
|
13
|
+
[](https://github.com/phillipclapham/flowscript-agents) [](https://pypi.org/project/flowscript-agents/) [](LICENSE) [](https://pypi.org/project/flowscript-agents/)
|
|
12
14
|
|
|
13
15
|
---
|
|
14
16
|
|
|
@@ -293,6 +295,55 @@ Events are dispatched in order (single worker thread). Callback failures log to
|
|
|
293
295
|
|
|
294
296
|
---
|
|
295
297
|
|
|
298
|
+
## @fix — Convergence Certificates
|
|
299
|
+
|
|
300
|
+
When FlowScript's consolidation engine resolves contradictions — creating tensions, updating beliefs, unblocking decisions — it produces **convergence certificates**: hash-chained attestations that prove how the reasoning graph changed and that the transformation hasn't been tampered with.
|
|
301
|
+
|
|
302
|
+
```python
|
|
303
|
+
from flowscript_agents import Memory, MemoryOptions, AuditConfig
|
|
304
|
+
|
|
305
|
+
mem = Memory.load_or_create("agent.json", options=MemoryOptions(
|
|
306
|
+
audit=AuditConfig(retention_months=84)
|
|
307
|
+
))
|
|
308
|
+
|
|
309
|
+
# UnifiedMemory consolidation produces certificates automatically:
|
|
310
|
+
# initial_graph_hash → delta_sequence → final_graph_hash → certificate_hash
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
Each certificate records: the graph state before consolidation (`initial_hash`), what changed (`delta_sequence`), the graph state after (`final_hash`), and a hash proving the record is tamper-evident (`certificate_hash`). This is concrete Article 86 infrastructure — an auditor can verify not just what your agent decided, but how it got there.
|
|
314
|
+
|
|
315
|
+
**Underlying formal model:** FlowScript's `@fix` operator provides stratified fixpoint computation over typed reasoning graphs — L0 (pure description, always terminates), L1 (bounded fixpoint, Knaster-Tarski guarantees), L2 (general fixpoint, Turing-complete, bounded). Consolidation is a degenerate L1 fixpoint (single iteration). Full spec: [`fixpoint_spec.md`](https://github.com/phillipclapham/flowscript/blob/main/spec/fixpoint_spec.md).
|
|
316
|
+
|
|
317
|
+
---
|
|
318
|
+
|
|
319
|
+
## FlowScript Cloud — Independent Cryptographic Witnessing *(Coming Soon)*
|
|
320
|
+
|
|
321
|
+
Local audit trails are tamper-evident but self-attested. FlowScript Cloud will add independent verification: your SDK streams events to the Cloud service, which verifies chain continuity and stores witness attestations.
|
|
322
|
+
|
|
323
|
+
The CloudClient is included in the SDK and ready for integration. The Cloud service is under development.
|
|
324
|
+
|
|
325
|
+
```python
|
|
326
|
+
from flowscript_agents import Memory, MemoryOptions, AuditConfig
|
|
327
|
+
from flowscript_agents.cloud import CloudClient
|
|
328
|
+
|
|
329
|
+
cloud = CloudClient() # reads FLOWSCRIPT_API_KEY from env
|
|
330
|
+
|
|
331
|
+
mem = Memory.load_or_create("agent.json", options=MemoryOptions(
|
|
332
|
+
audit=AuditConfig(on_event=cloud.queue_event)
|
|
333
|
+
))
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
**CloudClient features:**
|
|
337
|
+
- **Batch buffering** — events accumulate and flush in batches (configurable `batch_size`, default 50)
|
|
338
|
+
- **Lock-free I/O** — network operations never block your agent's main thread
|
|
339
|
+
- **Buffer overflow protection** — `max_buffer_size` cap prevents memory growth
|
|
340
|
+
- **Witness tracking** — `cloud.last_witness` returns the most recent attestation
|
|
341
|
+
- **Retry with backoff** — transient failures retry automatically
|
|
342
|
+
|
|
343
|
+
**Planned deployment tiers:** SaaS, self-hosted Cloudflare, or Docker on-premise. BSL 1.1 licensed.
|
|
344
|
+
|
|
345
|
+
---
|
|
346
|
+
|
|
296
347
|
## Session Lifecycle — How Memory Gets Smarter
|
|
297
348
|
|
|
298
349
|
Just like a mind needs sleep to consolidate memories, your agent's reasoning graph needs regular session wraps to develop intelligence over time. Without consolidation cycles, knowledge accumulates as noise instead of maturing.
|
|
@@ -433,14 +484,14 @@ text = explain(result, audience="legal")
|
|
|
433
484
|
│ ┌──────────┐ ┌──────────┐ ┌──────────────────────┐ │
|
|
434
485
|
│ │ Memory │ │ Queries │ │ Audit Trail │ │
|
|
435
486
|
│ │ (graph) │ │ (5 ops) │ │ (SHA-256 hash chain) │ │
|
|
436
|
-
│ │
|
|
437
|
-
│ └──────────┘ └──────────┘ └──────────────────────┘ │
|
|
487
|
+
│ │ @fix │ │explain() │ │ on_event_async ─────────→ FlowScript Cloud
|
|
488
|
+
│ └──────────┘ └──────────┘ └──────────────────────┘ │ (independent witness)
|
|
438
489
|
├─────────────────────────────────────────────────────┤
|
|
439
490
|
│ Your Storage (files, database, cloud) │
|
|
440
491
|
└─────────────────────────────────────────────────────┘
|
|
441
492
|
```
|
|
442
493
|
|
|
443
|
-
FlowScript doesn't replace your stack. It sits between your agent framework and your storage, adding typed reasoning and audit to whatever you already use.
|
|
494
|
+
FlowScript doesn't replace your stack. It sits between your agent framework and your storage, adding typed reasoning and audit to whatever you already use. Optionally stream audit events to FlowScript Cloud *(coming soon)* for independent cryptographic witnessing.
|
|
444
495
|
|
|
445
496
|
---
|
|
446
497
|
|
|
@@ -486,11 +537,12 @@ The applications are what you install FlowScript for. The infrastructure is why
|
|
|
486
537
|
|
|
487
538
|
| Package | What | Install |
|
|
488
539
|
|:--------|:-----|:--------|
|
|
489
|
-
| [flowscript-agents](https://pypi.org/project/flowscript-agents/) | Python SDK — 9 adapters, unified memory, consolidation, audit trail | `pip install flowscript-agents openai` |
|
|
540
|
+
| [flowscript-agents](https://pypi.org/project/flowscript-agents/) | Python SDK — 9 adapters, CloudClient, unified memory, consolidation, audit trail | `pip install flowscript-agents openai` |
|
|
490
541
|
| [flowscript-core](https://www.npmjs.com/package/flowscript-core) | TypeScript SDK — Memory class, 15 tools, token budgeting, audit trail | `npm install flowscript-core` |
|
|
542
|
+
| [flowscript-cloud](https://github.com/phillipclapham/flowscript-cloud) | Cloud witnessing service — chain verification, witness attestations, RBAC | *Coming soon* |
|
|
491
543
|
| [flowscript.org](https://flowscript.org) | Web editor, D3 visualization, live query panel | Browser |
|
|
492
544
|
|
|
493
|
-
|
|
545
|
+
**~1,400+ tests** across Python (590+), TypeScript (779), and Cloud (68). Same audit trail format and canonical JSON serialization across both languages.
|
|
494
546
|
|
|
495
547
|
### Docs
|
|
496
548
|
|
|
@@ -27,6 +27,7 @@ Usage:
|
|
|
27
27
|
"""
|
|
28
28
|
|
|
29
29
|
from .audit import AuditConfig, AuditQueryResult, AuditVerifyResult
|
|
30
|
+
from .client import FlowScriptAnthropic, FlowScriptOpenAI
|
|
30
31
|
from .cloud import CloudClient, CloudFlushResult, CloudWitness
|
|
31
32
|
from .memory import (
|
|
32
33
|
Memory,
|
|
@@ -43,14 +44,17 @@ from .memory import (
|
|
|
43
44
|
SessionWrapResult,
|
|
44
45
|
)
|
|
45
46
|
from .unified import UnifiedMemory
|
|
46
|
-
from .explain import explain
|
|
47
|
+
from .explain import explain, explain_counterfactual
|
|
47
48
|
|
|
48
|
-
__version__ = "0.
|
|
49
|
+
__version__ = "0.3.0"
|
|
49
50
|
__all__ = [
|
|
50
51
|
"explain",
|
|
52
|
+
"explain_counterfactual",
|
|
51
53
|
"AuditConfig",
|
|
52
54
|
"AuditQueryResult",
|
|
53
55
|
"AuditVerifyResult",
|
|
56
|
+
"FlowScriptAnthropic",
|
|
57
|
+
"FlowScriptOpenAI",
|
|
54
58
|
"CloudClient",
|
|
55
59
|
"CloudFlushResult",
|
|
56
60
|
"CloudWitness",
|