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.
Files changed (53) hide show
  1. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/PKG-INFO +64 -4
  2. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/README.md +63 -3
  3. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/examples/CLAUDE.md.example +2 -1
  4. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/mcp.py +16 -5
  5. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/pyproject.toml +1 -1
  6. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/.gitignore +0 -0
  7. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/AUDIT_TRAIL_DESIGN.md +0 -0
  8. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/docs/adapters.md +0 -0
  9. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/docs/api-reference.md +0 -0
  10. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/docs/audit-trail.md +0 -0
  11. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/docs/flowscript-demo.png +0 -0
  12. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/docs/lifecycle.md +0 -0
  13. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/examples/langgraph_live_test.py +0 -0
  14. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/examples/temporal_e2e_test.py +0 -0
  15. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/__init__.py +0 -0
  16. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/audit.py +0 -0
  17. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/camel_ai.py +0 -0
  18. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/crewai.py +0 -0
  19. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/embeddings/__init__.py +0 -0
  20. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/embeddings/_utils.py +0 -0
  21. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/embeddings/consolidate.py +0 -0
  22. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/embeddings/extract.py +0 -0
  23. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/embeddings/index.py +0 -0
  24. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/embeddings/providers.py +0 -0
  25. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/embeddings/search.py +0 -0
  26. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/google_adk.py +0 -0
  27. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/haystack.py +0 -0
  28. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/langgraph.py +0 -0
  29. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/llamaindex.py +0 -0
  30. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/memory.py +0 -0
  31. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/openai_agents.py +0 -0
  32. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/pydantic_ai.py +0 -0
  33. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/query.py +0 -0
  34. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/smolagents.py +0 -0
  35. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/types.py +0 -0
  36. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/flowscript_agents/unified.py +0 -0
  37. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/scripts/validate_dedup_threshold.py +0 -0
  38. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/tests/conftest.py +0 -0
  39. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/tests/test_audit.py +0 -0
  40. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/tests/test_camel_ai.py +0 -0
  41. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/tests/test_consolidation.py +0 -0
  42. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/tests/test_crewai.py +0 -0
  43. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/tests/test_embeddings.py +0 -0
  44. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/tests/test_google_adk.py +0 -0
  45. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/tests/test_haystack.py +0 -0
  46. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/tests/test_langgraph.py +0 -0
  47. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/tests/test_llamaindex.py +0 -0
  48. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/tests/test_mcp.py +0 -0
  49. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/tests/test_memory.py +0 -0
  50. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/tests/test_openai_agents.py +0 -0
  51. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/tests/test_pydantic_ai.py +0 -0
  52. {flowscript_agents-0.2.1 → flowscript_agents-0.2.2}/tests/test_smolagents.py +0 -0
  53. {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.1
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
- pip install flowscript-agents
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
- Auto-detects your API key and configures the full stack: vector search, typed extraction, and contradiction handling. Also supports `ANTHROPIC_API_KEY`. 13 reasoning tools.
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
- pip install flowscript-agents
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
- Auto-detects your API key and configures the full stack: vector search, typed extraction, and contradiction handling. Also supports `ANTHROPIC_API_KEY`. 13 reasoning tools.
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 via .mcp.json or ~/.claude.json.
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 project's .mcp.json (project-level, shareable):
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
- "type": "stdio",
21
- "command": "python3",
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
- Or in ~/.claude.json for global (all projects) configuration.
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.1"
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"