flowscript-agents 0.2.1__tar.gz → 0.2.2__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.2.1 → flowscript_agents-0.2.2}/PKG-INFO +64 -4
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/README.md +63 -3
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/examples/CLAUDE.md.example +2 -1
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/mcp.py +16 -5
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/pyproject.toml +1 -1
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/.gitignore +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/AUDIT_TRAIL_DESIGN.md +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/docs/adapters.md +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/docs/api-reference.md +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/docs/audit-trail.md +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/docs/flowscript-demo.png +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/docs/lifecycle.md +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/examples/langgraph_live_test.py +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/examples/temporal_e2e_test.py +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/__init__.py +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/audit.py +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/camel_ai.py +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/crewai.py +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/embeddings/__init__.py +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/embeddings/_utils.py +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/embeddings/consolidate.py +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/embeddings/extract.py +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/embeddings/index.py +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/embeddings/providers.py +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/embeddings/search.py +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/google_adk.py +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/haystack.py +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/langgraph.py +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/llamaindex.py +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/memory.py +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/openai_agents.py +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/pydantic_ai.py +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/query.py +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/smolagents.py +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/types.py +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/unified.py +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/scripts/validate_dedup_threshold.py +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/tests/conftest.py +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/tests/test_audit.py +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/tests/test_camel_ai.py +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/tests/test_consolidation.py +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/tests/test_crewai.py +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/tests/test_embeddings.py +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/tests/test_google_adk.py +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/tests/test_haystack.py +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/tests/test_langgraph.py +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/tests/test_llamaindex.py +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/tests/test_mcp.py +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/tests/test_memory.py +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/tests/test_openai_agents.py +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/tests/test_pydantic_ai.py +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/tests/test_smolagents.py +0 -0
- {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/tests/test_temporal.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: flowscript-agents
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.2
|
|
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, CAMEL-AI, and Vercel AI SDK.
|
|
5
5
|
Project-URL: Homepage, https://flowscript.org
|
|
6
6
|
Project-URL: Repository, https://github.com/phillipclapham/flowscript-agents
|
|
@@ -111,10 +111,37 @@ Five queries that no vector store can answer — `why()`, `tensions()`, `blocked
|
|
|
111
111
|
|
|
112
112
|
### MCP Server (Claude Code / Cursor — zero code)
|
|
113
113
|
|
|
114
|
+
```bash
|
|
115
|
+
pip install flowscript-agents openai
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
The `openai` package is required for extraction, consolidation, and vector search. Without it, `add_memory` stores raw text and `query_tensions` won't find anything.
|
|
119
|
+
|
|
120
|
+
Add to your editor's MCP config:
|
|
121
|
+
|
|
122
|
+
**Claude Code** — add to `.claude/settings.json` in your project (or `~/.claude/settings.json` for global):
|
|
123
|
+
|
|
124
|
+
```json
|
|
125
|
+
{
|
|
126
|
+
"mcpServers": {
|
|
127
|
+
"flowscript": {
|
|
128
|
+
"command": "flowscript-mcp",
|
|
129
|
+
"args": ["--memory", "./project-memory.json"],
|
|
130
|
+
"env": {
|
|
131
|
+
"OPENAI_API_KEY": "your-key"
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
**Cursor / Windsurf / VS Code** — add to `.mcp.json` in your project root:
|
|
139
|
+
|
|
114
140
|
```json
|
|
115
141
|
{
|
|
116
142
|
"mcpServers": {
|
|
117
143
|
"flowscript": {
|
|
144
|
+
"type": "stdio",
|
|
118
145
|
"command": "flowscript-mcp",
|
|
119
146
|
"args": ["--memory", "./project-memory.json"],
|
|
120
147
|
"env": {
|
|
@@ -125,11 +152,44 @@ Five queries that no vector store can answer — `why()`, `tensions()`, `blocked
|
|
|
125
152
|
}
|
|
126
153
|
```
|
|
127
154
|
|
|
155
|
+
**Fallback:** If `env` passthrough doesn't work in your editor, export the key in your shell before launching:
|
|
128
156
|
```bash
|
|
129
|
-
|
|
157
|
+
export OPENAI_API_KEY=your-key
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
The server auto-detects your API key and configures the full stack:
|
|
161
|
+
|
|
162
|
+
| Key | What you get |
|
|
163
|
+
|:----|:-------------|
|
|
164
|
+
| `OPENAI_API_KEY` | Vector search (text-embedding-3-small) + typed extraction (gpt-4o-mini) + consolidation |
|
|
165
|
+
| `ANTHROPIC_API_KEY` | Typed extraction + consolidation (no embeddings, keyword search fallback) |
|
|
166
|
+
| Neither | Raw text storage only. Tools work, but no typed extraction and `query_tensions` won't find anything. |
|
|
167
|
+
|
|
168
|
+
**Without an API key, you get a degraded experience.** The server warns on startup and in tool responses.
|
|
169
|
+
|
|
170
|
+
### Embedding Providers
|
|
171
|
+
|
|
172
|
+
The default is OpenAI `text-embedding-3-small`. To use a different provider, pass flags in `args`:
|
|
173
|
+
|
|
174
|
+
```json
|
|
175
|
+
"args": ["--memory", "./project-memory.json", "--embedder", "ollama", "--embedding-model", "nomic-embed-text"]
|
|
130
176
|
```
|
|
131
177
|
|
|
132
|
-
|
|
178
|
+
| Flag | What it does | Default |
|
|
179
|
+
|:-----|:-------------|:--------|
|
|
180
|
+
| `--embedder` | Embedding provider: `openai`, `sentence-transformers`, or `ollama` | Auto-detected from API key |
|
|
181
|
+
| `--embedding-model` | Model name (provider-specific) | `text-embedding-3-small` (OpenAI) |
|
|
182
|
+
| `--llm-model` | LLM for extraction and consolidation | `gpt-4o-mini` |
|
|
183
|
+
| `--no-auto` | Disable auto-configuration from API keys | Off |
|
|
184
|
+
|
|
185
|
+
**Local embeddings (free, no API key for embeddings):**
|
|
186
|
+
|
|
187
|
+
| Provider | Install | Example model | Notes |
|
|
188
|
+
|:---------|:--------|:--------------|:------|
|
|
189
|
+
| Ollama | [Install Ollama](https://ollama.com), then `ollama pull nomic-embed-text` | `nomic-embed-text` | Beats text-embedding-3-small. 274MB. |
|
|
190
|
+
| SentenceTransformers | `pip install sentence-transformers` | `BAAI/bge-m3` | Runs on CPU. Downloads on first use. |
|
|
191
|
+
|
|
192
|
+
You still need an LLM API key (`OPENAI_API_KEY` or `ANTHROPIC_API_KEY`) for typed extraction and consolidation, even when using local embeddings.
|
|
133
193
|
|
|
134
194
|
**Then add the [CLAUDE.md snippet](examples/CLAUDE.md.example) to your project.** This is what turns tools into a workflow. It tells your agent *when* to record decisions, surface tensions before new choices, and check blockers at session start. Without it, the tools are available but passive. With it, your agent proactively tracks your project's reasoning.
|
|
135
195
|
|
|
@@ -289,7 +349,7 @@ Under the hood: a local semantic graph with typed nodes, typed relationships, an
|
|
|
289
349
|
|
|
290
350
|
| Package | What | Install |
|
|
291
351
|
|:--------|:-----|:--------|
|
|
292
|
-
| [flowscript-agents](https://pypi.org/project/flowscript-agents/) | Python SDK — 9 adapters, unified memory, consolidation, audit trail | `pip install flowscript-agents` |
|
|
352
|
+
| [flowscript-agents](https://pypi.org/project/flowscript-agents/) | Python SDK — 9 adapters, unified memory, consolidation, audit trail | `pip install flowscript-agents openai` |
|
|
293
353
|
| [flowscript-core](https://www.npmjs.com/package/flowscript-core) | TypeScript SDK — Memory class, 15 tools, token budgeting, audit trail | `npm install flowscript-core` |
|
|
294
354
|
| [flowscript.org](https://flowscript.org) | Web editor, D3 visualization, live query panel | Browser |
|
|
295
355
|
|
|
@@ -47,10 +47,37 @@ Five queries that no vector store can answer — `why()`, `tensions()`, `blocked
|
|
|
47
47
|
|
|
48
48
|
### MCP Server (Claude Code / Cursor — zero code)
|
|
49
49
|
|
|
50
|
+
```bash
|
|
51
|
+
pip install flowscript-agents openai
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
The `openai` package is required for extraction, consolidation, and vector search. Without it, `add_memory` stores raw text and `query_tensions` won't find anything.
|
|
55
|
+
|
|
56
|
+
Add to your editor's MCP config:
|
|
57
|
+
|
|
58
|
+
**Claude Code** — add to `.claude/settings.json` in your project (or `~/.claude/settings.json` for global):
|
|
59
|
+
|
|
60
|
+
```json
|
|
61
|
+
{
|
|
62
|
+
"mcpServers": {
|
|
63
|
+
"flowscript": {
|
|
64
|
+
"command": "flowscript-mcp",
|
|
65
|
+
"args": ["--memory", "./project-memory.json"],
|
|
66
|
+
"env": {
|
|
67
|
+
"OPENAI_API_KEY": "your-key"
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
**Cursor / Windsurf / VS Code** — add to `.mcp.json` in your project root:
|
|
75
|
+
|
|
50
76
|
```json
|
|
51
77
|
{
|
|
52
78
|
"mcpServers": {
|
|
53
79
|
"flowscript": {
|
|
80
|
+
"type": "stdio",
|
|
54
81
|
"command": "flowscript-mcp",
|
|
55
82
|
"args": ["--memory", "./project-memory.json"],
|
|
56
83
|
"env": {
|
|
@@ -61,11 +88,44 @@ Five queries that no vector store can answer — `why()`, `tensions()`, `blocked
|
|
|
61
88
|
}
|
|
62
89
|
```
|
|
63
90
|
|
|
91
|
+
**Fallback:** If `env` passthrough doesn't work in your editor, export the key in your shell before launching:
|
|
64
92
|
```bash
|
|
65
|
-
|
|
93
|
+
export OPENAI_API_KEY=your-key
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
The server auto-detects your API key and configures the full stack:
|
|
97
|
+
|
|
98
|
+
| Key | What you get |
|
|
99
|
+
|:----|:-------------|
|
|
100
|
+
| `OPENAI_API_KEY` | Vector search (text-embedding-3-small) + typed extraction (gpt-4o-mini) + consolidation |
|
|
101
|
+
| `ANTHROPIC_API_KEY` | Typed extraction + consolidation (no embeddings, keyword search fallback) |
|
|
102
|
+
| Neither | Raw text storage only. Tools work, but no typed extraction and `query_tensions` won't find anything. |
|
|
103
|
+
|
|
104
|
+
**Without an API key, you get a degraded experience.** The server warns on startup and in tool responses.
|
|
105
|
+
|
|
106
|
+
### Embedding Providers
|
|
107
|
+
|
|
108
|
+
The default is OpenAI `text-embedding-3-small`. To use a different provider, pass flags in `args`:
|
|
109
|
+
|
|
110
|
+
```json
|
|
111
|
+
"args": ["--memory", "./project-memory.json", "--embedder", "ollama", "--embedding-model", "nomic-embed-text"]
|
|
66
112
|
```
|
|
67
113
|
|
|
68
|
-
|
|
114
|
+
| Flag | What it does | Default |
|
|
115
|
+
|:-----|:-------------|:--------|
|
|
116
|
+
| `--embedder` | Embedding provider: `openai`, `sentence-transformers`, or `ollama` | Auto-detected from API key |
|
|
117
|
+
| `--embedding-model` | Model name (provider-specific) | `text-embedding-3-small` (OpenAI) |
|
|
118
|
+
| `--llm-model` | LLM for extraction and consolidation | `gpt-4o-mini` |
|
|
119
|
+
| `--no-auto` | Disable auto-configuration from API keys | Off |
|
|
120
|
+
|
|
121
|
+
**Local embeddings (free, no API key for embeddings):**
|
|
122
|
+
|
|
123
|
+
| Provider | Install | Example model | Notes |
|
|
124
|
+
|:---------|:--------|:--------------|:------|
|
|
125
|
+
| Ollama | [Install Ollama](https://ollama.com), then `ollama pull nomic-embed-text` | `nomic-embed-text` | Beats text-embedding-3-small. 274MB. |
|
|
126
|
+
| SentenceTransformers | `pip install sentence-transformers` | `BAAI/bge-m3` | Runs on CPU. Downloads on first use. |
|
|
127
|
+
|
|
128
|
+
You still need an LLM API key (`OPENAI_API_KEY` or `ANTHROPIC_API_KEY`) for typed extraction and consolidation, even when using local embeddings.
|
|
69
129
|
|
|
70
130
|
**Then add the [CLAUDE.md snippet](examples/CLAUDE.md.example) to your project.** This is what turns tools into a workflow. It tells your agent *when* to record decisions, surface tensions before new choices, and check blockers at session start. Without it, the tools are available but passive. With it, your agent proactively tracks your project's reasoning.
|
|
71
131
|
|
|
@@ -225,7 +285,7 @@ Under the hood: a local semantic graph with typed nodes, typed relationships, an
|
|
|
225
285
|
|
|
226
286
|
| Package | What | Install |
|
|
227
287
|
|:--------|:-----|:--------|
|
|
228
|
-
| [flowscript-agents](https://pypi.org/project/flowscript-agents/) | Python SDK — 9 adapters, unified memory, consolidation, audit trail | `pip install flowscript-agents` |
|
|
288
|
+
| [flowscript-agents](https://pypi.org/project/flowscript-agents/) | Python SDK — 9 adapters, unified memory, consolidation, audit trail | `pip install flowscript-agents openai` |
|
|
229
289
|
| [flowscript-core](https://www.npmjs.com/package/flowscript-core) | TypeScript SDK — Memory class, 15 tools, token budgeting, audit trail | `npm install flowscript-core` |
|
|
230
290
|
| [flowscript.org](https://flowscript.org) | Web editor, D3 visualization, live query panel | Browser |
|
|
231
291
|
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
#
|
|
3
3
|
# Paste the section below into your project's CLAUDE.md to enable
|
|
4
4
|
# proactive reasoning memory. FlowScript MCP tools are available
|
|
5
|
-
# when the server is configured
|
|
5
|
+
# when the server is configured in your editor's MCP settings
|
|
6
|
+
# (.claude/settings.json for Claude Code, .mcp.json for Cursor/Windsurf).
|
|
6
7
|
|
|
7
8
|
## Reasoning Memory (FlowScript)
|
|
8
9
|
|
|
@@ -13,19 +13,30 @@ Full config:
|
|
|
13
13
|
python -m flowscript_agents.mcp --memory ./agent.json \\
|
|
14
14
|
--embedder openai --llm-model gpt-4o-mini
|
|
15
15
|
|
|
16
|
-
Configure in your
|
|
16
|
+
Configure in your editor's MCP settings:
|
|
17
|
+
|
|
18
|
+
Claude Code — .claude/settings.json (project or ~/.claude/settings.json global):
|
|
17
19
|
{
|
|
18
20
|
"mcpServers": {
|
|
19
21
|
"flowscript": {
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"args": ["-m", "flowscript_agents.mcp", "--memory", "./agent-memory.json"],
|
|
22
|
+
"command": "flowscript-mcp",
|
|
23
|
+
"args": ["--memory", "./agent-memory.json"],
|
|
23
24
|
"env": { "OPENAI_API_KEY": "sk-..." }
|
|
24
25
|
}
|
|
25
26
|
}
|
|
26
27
|
}
|
|
27
28
|
|
|
28
|
-
|
|
29
|
+
Cursor / Windsurf / VS Code — .mcp.json in project root:
|
|
30
|
+
{
|
|
31
|
+
"mcpServers": {
|
|
32
|
+
"flowscript": {
|
|
33
|
+
"type": "stdio",
|
|
34
|
+
"command": "flowscript-mcp",
|
|
35
|
+
"args": ["--memory", "./agent-memory.json"],
|
|
36
|
+
"env": { "OPENAI_API_KEY": "sk-..." }
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
29
40
|
|
|
30
41
|
When OPENAI_API_KEY is set, the server auto-configures:
|
|
31
42
|
- OpenAI embeddings (text-embedding-3-small) for vector search
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "flowscript-agents"
|
|
7
|
-
version = "0.2.
|
|
7
|
+
version = "0.2.2"
|
|
8
8
|
description = "Complete agent memory: reasoning queries + vector search + auto-extraction. Decision intelligence for LangGraph, CrewAI, Google ADK, OpenAI Agents SDK, Pydantic AI, smolagents, LlamaIndex, Haystack, CAMEL-AI, and Vercel AI SDK."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "MIT"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/embeddings/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/embeddings/consolidate.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/embeddings/providers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|