flock-core 0.5.0b52__py3-none-any.whl → 0.5.0b54__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.
Potentially problematic release.
This version of flock-core might be problematic. Click here for more details.
- flock/agent.py +6 -2
- flock/components.py +17 -1
- flock/dashboard/service.py +293 -0
- flock/frontend/README.md +86 -0
- flock/frontend/src/components/modules/JsonAttributeRenderer.tsx +140 -0
- flock/frontend/src/components/modules/ModuleWindow.tsx +97 -29
- flock/frontend/src/components/modules/TraceModuleJaeger.tsx +1971 -0
- flock/frontend/src/components/modules/TraceModuleJaegerWrapper.tsx +13 -0
- flock/frontend/src/components/modules/registerModules.ts +10 -0
- flock/frontend/src/components/settings/MultiSelect.tsx +235 -0
- flock/frontend/src/components/settings/SettingsPanel.css +1 -1
- flock/frontend/src/components/settings/TracingSettings.tsx +404 -0
- flock/frontend/src/types/modules.ts +3 -0
- flock/logging/auto_trace.py +159 -0
- flock/logging/telemetry.py +17 -0
- flock/logging/telemetry_exporter/duckdb_exporter.py +216 -0
- flock/logging/telemetry_exporter/file_exporter.py +7 -1
- flock/logging/trace_and_logged.py +263 -14
- flock/mcp/util/helpers.py +3 -3
- flock/orchestrator.py +130 -1
- {flock_core-0.5.0b52.dist-info → flock_core-0.5.0b54.dist-info}/METADATA +187 -18
- {flock_core-0.5.0b52.dist-info → flock_core-0.5.0b54.dist-info}/RECORD +25 -18
- {flock_core-0.5.0b52.dist-info → flock_core-0.5.0b54.dist-info}/WHEEL +0 -0
- {flock_core-0.5.0b52.dist-info → flock_core-0.5.0b54.dist-info}/entry_points.txt +0 -0
- {flock_core-0.5.0b52.dist-info → flock_core-0.5.0b54.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: flock-core
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.0b54
|
|
4
4
|
Summary: Add your description here
|
|
5
5
|
Author-email: Andre Ratzenberger <andre.ratzenberger@whiteduck.de>
|
|
6
6
|
License-File: LICENSE
|
|
7
7
|
Requires-Python: >=3.10
|
|
8
8
|
Requires-Dist: devtools>=0.12.2
|
|
9
9
|
Requires-Dist: dspy==3.0.0
|
|
10
|
+
Requires-Dist: duckdb>=1.1.0
|
|
10
11
|
Requires-Dist: fastapi>=0.117.1
|
|
11
12
|
Requires-Dist: httpx>=0.28.1
|
|
12
13
|
Requires-Dist: litellm==1.75.3
|
|
@@ -49,18 +50,18 @@ Description-Content-Type: text/markdown
|
|
|
49
50
|
|
|
50
51
|
## The Problem You Know Too Well
|
|
51
52
|
|
|
52
|
-
🤯 **Prompt Hell**: Brittle 500-line prompts that break with every model update
|
|
53
|
-
💥 **System Failures**: One bad LLM response crashes your entire workflow
|
|
54
|
-
🧪 **Testing Nightmares**: "How do I unit test a prompt?" (You don't.)
|
|
55
|
-
📏 **Measuring Quality**: "How do I know my prompts are optimal?" (You also don't.)
|
|
56
|
-
📄 **Output Chaos**: Parsing unstructured LLM responses into reliable data
|
|
57
|
-
⛓️ **Orchestration Limits**: Graph-based frameworks create rigid, tightly-coupled systems
|
|
58
|
-
🚀 **Production Gap**: Jupyter notebooks don't scale to enterprise systems
|
|
59
|
-
🔓 **No Security Model**: Every agent sees everything—no access controls
|
|
53
|
+
🤯 **Prompt Hell**: Brittle 500-line prompts that break with every model update
|
|
54
|
+
💥 **System Failures**: One bad LLM response crashes your entire workflow
|
|
55
|
+
🧪 **Testing Nightmares**: "How do I unit test a prompt?" (You don't.)
|
|
56
|
+
📏 **Measuring Quality**: "How do I know my prompts are optimal?" (You also don't.)
|
|
57
|
+
📄 **Output Chaos**: Parsing unstructured LLM responses into reliable data
|
|
58
|
+
⛓️ **Orchestration Limits**: Graph-based frameworks create rigid, tightly-coupled systems
|
|
59
|
+
🚀 **Production Gap**: Jupyter notebooks don't scale to enterprise systems
|
|
60
|
+
🔓 **No Security Model**: Every agent sees everything—no access controls
|
|
60
61
|
|
|
61
62
|
**The tooling is fundamentally broken. It's time for a better approach.**
|
|
62
63
|
|
|
63
|
-
Most issues are solvable, because decades of experience with micro services tought us hard lessons about decoupling, orchestration and reliability.
|
|
64
|
+
Most issues are solvable, because decades of experience with micro services tought us hard lessons about decoupling, orchestration and reliability.
|
|
64
65
|
|
|
65
66
|
**Let's introduce these learnings to AI agents!**
|
|
66
67
|
|
|
@@ -107,13 +108,13 @@ pizza_master = (
|
|
|
107
108
|
|
|
108
109
|
### ✅ Key Advantages
|
|
109
110
|
|
|
110
|
-
✅ **Declarative Contracts**: Define inputs/outputs with Pydantic models. Flock handles the LLM complexity.
|
|
111
|
-
⚡ **Built-in Resilience**: Blackboard persists context—agents crash? They recover and resume.
|
|
112
|
-
🧪 **Actually Testable**: Clear contracts make agents unit-testable like any other code
|
|
113
|
-
🔐 **Zero-Trust Security**: 5 built-in visibility types (Public, Private, Tenant, Label-based, Time-delayed)
|
|
114
|
-
🚀 **Dynamic Workflows**: Self-correcting loops, conditional routing, intelligent decision-making
|
|
115
|
-
🔧 **Production-Ready**: Real-time dashboard, WebSocket streaming, 743 passing tests
|
|
116
|
-
📊 **True Observability**: Agent View + Blackboard View with full data lineage
|
|
111
|
+
✅ **Declarative Contracts**: Define inputs/outputs with Pydantic models. Flock handles the LLM complexity.
|
|
112
|
+
⚡ **Built-in Resilience**: Blackboard persists context—agents crash? They recover and resume.
|
|
113
|
+
🧪 **Actually Testable**: Clear contracts make agents unit-testable like any other code
|
|
114
|
+
🔐 **Zero-Trust Security**: 5 built-in visibility types (Public, Private, Tenant, Label-based, Time-delayed)
|
|
115
|
+
🚀 **Dynamic Workflows**: Self-correcting loops, conditional routing, intelligent decision-making
|
|
116
|
+
🔧 **Production-Ready**: Real-time dashboard, WebSocket streaming, 743 passing tests
|
|
117
|
+
📊 **True Observability**: Agent View + Blackboard View with full data lineage
|
|
117
118
|
|
|
118
119
|
---
|
|
119
120
|
|
|
@@ -656,9 +657,177 @@ recommender = orchestrator.agent("recommender").consumes(
|
|
|
656
657
|
|
|
657
658
|
---
|
|
658
659
|
|
|
660
|
+
## 🔍 Observability & Debugging
|
|
661
|
+
|
|
662
|
+
### Built-in OpenTelemetry Tracing with DuckDB
|
|
663
|
+
|
|
664
|
+
Flock includes **production-ready distributed tracing** powered by OpenTelemetry and DuckDB—enabling AI-assisted debugging and performance analysis.
|
|
665
|
+
|
|
666
|
+
**Why DuckDB?** It's a columnar analytical database **10-100x faster than SQLite** for trace analytics. No external services, no Docker—just a single embedded database file.
|
|
667
|
+
|
|
668
|
+
> **📊 Production Status**: 85% Production-Ready | [View Assessment](docs/TRACING_PRODUCTION_READINESS.md)
|
|
669
|
+
>
|
|
670
|
+
> ✅ Complete architecture • ✅ Zero-config storage • ✅ Comprehensive UI • ⚠️ Add auth before production
|
|
671
|
+
|
|
672
|
+
### Enable Tracing
|
|
673
|
+
|
|
674
|
+
```bash
|
|
675
|
+
# Enable auto-tracing for all agents
|
|
676
|
+
export FLOCK_AUTO_TRACE=true
|
|
677
|
+
export FLOCK_TRACE_FILE=true
|
|
678
|
+
|
|
679
|
+
# Run your application
|
|
680
|
+
python your_app.py
|
|
681
|
+
|
|
682
|
+
# Traces stored in: .flock/traces.duckdb
|
|
683
|
+
```
|
|
684
|
+
|
|
685
|
+
### Filtering: Control What Gets Traced
|
|
686
|
+
|
|
687
|
+
Use whitelist/blacklist filtering to reduce overhead and avoid tracing noisy operations like streaming tokens:
|
|
688
|
+
|
|
689
|
+
```bash
|
|
690
|
+
# Trace only core services (recommended for production)
|
|
691
|
+
export FLOCK_TRACE_SERVICES='["flock", "agent", "dspyengine", "outpututilitycomponent"]'
|
|
692
|
+
|
|
693
|
+
# Exclude specific noisy operations
|
|
694
|
+
export FLOCK_TRACE_IGNORE='["DashboardEventCollector.set_websocket_manager"]'
|
|
695
|
+
```
|
|
696
|
+
|
|
697
|
+
**How filtering works:**
|
|
698
|
+
- **Whitelist** (`FLOCK_TRACE_SERVICES`): Only trace specified classes (case-insensitive)
|
|
699
|
+
- **Blacklist** (`FLOCK_TRACE_IGNORE`): Never trace specific operations (exact match)
|
|
700
|
+
- Filtering happens **before** span creation for near-zero overhead
|
|
701
|
+
|
|
702
|
+
📖 **Full documentation:** [docs/AUTO_TRACING.md](docs/AUTO_TRACING.md)
|
|
703
|
+
|
|
704
|
+
### Real-Time Trace Viewer
|
|
705
|
+
|
|
706
|
+
<p align="center">
|
|
707
|
+
<img alt="Trace Viewer" src="docs/img/trace_viewer.png" width="1000">
|
|
708
|
+
</p>
|
|
709
|
+
|
|
710
|
+
The dashboard includes a **production-ready trace viewer** with **7 powerful view modes**:
|
|
711
|
+
|
|
712
|
+
- 📅 **Timeline**: Waterfall visualization showing execution flow and span hierarchies
|
|
713
|
+
- 📊 **Statistics**: Sortable table view with durations, span counts, and error tracking
|
|
714
|
+
- 🔴 **RED Metrics**: Rate, Errors, Duration monitoring for service health
|
|
715
|
+
- 🔗 **Dependencies**: Service-to-service communication with operation-level drill-down
|
|
716
|
+
- 🗄️ **DuckDB SQL**: Interactive SQL query editor with CSV export for custom analytics
|
|
717
|
+
- ⚙️ **Configuration**: Real-time service/operation filtering without restarts
|
|
718
|
+
- 📚 **Guide**: Built-in documentation and query examples
|
|
719
|
+
|
|
720
|
+
**Additional Features:**
|
|
721
|
+
- **Smart Sorting**: Sort traces by date, span count, or duration with visual indicators
|
|
722
|
+
- **CSV Export**: Download query results for offline analysis and reporting
|
|
723
|
+
- **Maximize Mode**: Full-screen view for deep data exploration
|
|
724
|
+
- **Multi-Trace Support**: Open and compare multiple traces simultaneously
|
|
725
|
+
- **Full I/O Capture**: Complete input/output data with collapsible JSON viewer
|
|
726
|
+
|
|
727
|
+
### AI-Powered Debugging
|
|
728
|
+
|
|
729
|
+
**AI agents (including Claude Code) can query your traces directly:**
|
|
730
|
+
|
|
731
|
+
```python
|
|
732
|
+
import duckdb
|
|
733
|
+
|
|
734
|
+
conn = duckdb.connect('.flock/traces.duckdb', read_only=True)
|
|
735
|
+
|
|
736
|
+
# Find slow operations
|
|
737
|
+
slow_ops = conn.execute("""
|
|
738
|
+
SELECT name, AVG(duration_ms) as avg_duration
|
|
739
|
+
FROM spans
|
|
740
|
+
WHERE duration_ms > 1000
|
|
741
|
+
GROUP BY name
|
|
742
|
+
ORDER BY avg_duration DESC
|
|
743
|
+
""").fetchall()
|
|
744
|
+
|
|
745
|
+
# Find errors with their inputs
|
|
746
|
+
errors = conn.execute("""
|
|
747
|
+
SELECT name, status_description,
|
|
748
|
+
json_extract(attributes, '$.input.message') as input
|
|
749
|
+
FROM spans
|
|
750
|
+
WHERE status_code = 'ERROR'
|
|
751
|
+
""").fetchall()
|
|
752
|
+
|
|
753
|
+
# Performance analysis by service
|
|
754
|
+
perf = conn.execute("""
|
|
755
|
+
SELECT service,
|
|
756
|
+
COUNT(*) as calls,
|
|
757
|
+
AVG(duration_ms) as avg_ms,
|
|
758
|
+
MAX(duration_ms) as max_ms,
|
|
759
|
+
PERCENTILE_CONT(0.95) WITHIN GROUP (ORDER BY duration_ms) as p95_ms
|
|
760
|
+
FROM spans
|
|
761
|
+
GROUP BY service
|
|
762
|
+
""").fetchall()
|
|
763
|
+
```
|
|
764
|
+
|
|
765
|
+
**Example AI-assisted debugging:**
|
|
766
|
+
```
|
|
767
|
+
You: "My pizza agent is slow, help me find why"
|
|
768
|
+
AI: [queries DuckDB] "The DSPyEngine.evaluate span takes 23s on average.
|
|
769
|
+
Checking input attributes... You're passing 50KB of conversation history.
|
|
770
|
+
Recommendation: Limit context window to last 5 messages."
|
|
771
|
+
```
|
|
772
|
+
|
|
773
|
+
### What Gets Traced
|
|
774
|
+
|
|
775
|
+
**Every operation is automatically traced with:**
|
|
776
|
+
|
|
777
|
+
✅ Full input arguments (with JSON serialization)
|
|
778
|
+
✅ Complete output values
|
|
779
|
+
✅ Duration and timestamps
|
|
780
|
+
✅ Parent-child span relationships
|
|
781
|
+
✅ Service and operation names
|
|
782
|
+
✅ Error messages and stack traces
|
|
783
|
+
✅ Agent metadata (name, description)
|
|
784
|
+
✅ Correlation IDs for request tracking
|
|
785
|
+
|
|
786
|
+
**No manual instrumentation required—just enable `FLOCK_AUTO_TRACE=true`.**
|
|
787
|
+
|
|
788
|
+
### Performance Analytics
|
|
789
|
+
|
|
790
|
+
```sql
|
|
791
|
+
-- Find bottlenecks
|
|
792
|
+
SELECT name, service, duration_ms
|
|
793
|
+
FROM spans
|
|
794
|
+
WHERE duration_ms > 5000
|
|
795
|
+
ORDER BY start_time DESC;
|
|
796
|
+
|
|
797
|
+
-- Track P95 latency by operation
|
|
798
|
+
SELECT operation,
|
|
799
|
+
PERCENTILE_CONT(0.95) WITHIN GROUP (ORDER BY duration_ms) as p95
|
|
800
|
+
FROM spans
|
|
801
|
+
WHERE service = 'DSPyEngine'
|
|
802
|
+
GROUP BY operation;
|
|
803
|
+
|
|
804
|
+
-- Error rate by service
|
|
805
|
+
SELECT service,
|
|
806
|
+
COUNT(*) as total,
|
|
807
|
+
SUM(CASE WHEN status_code = 'ERROR' THEN 1 ELSE 0 END) as errors,
|
|
808
|
+
(errors * 100.0 / total) as error_rate
|
|
809
|
+
FROM spans
|
|
810
|
+
GROUP BY service;
|
|
811
|
+
```
|
|
812
|
+
|
|
813
|
+
### Production Monitoring
|
|
814
|
+
|
|
815
|
+
Deploy Flock with **OTEL exporters** to send traces to your observability platform:
|
|
816
|
+
|
|
817
|
+
```bash
|
|
818
|
+
# Send to Grafana Tempo/Loki
|
|
819
|
+
export OTEL_EXPORTER_OTLP_ENDPOINT="http://tempo:4317"
|
|
820
|
+
export FLOCK_AUTO_TRACE=true
|
|
821
|
+
|
|
822
|
+
# Or use local DuckDB + periodic exports
|
|
823
|
+
export FLOCK_TRACE_FILE=true
|
|
824
|
+
```
|
|
825
|
+
|
|
826
|
+
---
|
|
827
|
+
|
|
659
828
|
## 🤝 Contributing
|
|
660
829
|
|
|
661
|
-
We're building Flock 0.5 in the open! See [`AGENTS.md`](AGENTS.md) for development setup.
|
|
830
|
+
We're building Flock 0.5 in the open! See [`AGENTS.md`](AGENTS.md) for development setup and debugging guide.
|
|
662
831
|
|
|
663
832
|
```bash
|
|
664
833
|
git clone https://github.com/whiteducksoftware/flock-flow.git
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
flock/__init__.py,sha256=fvp4ltfaAGmYliShuTY_XVIpOUN6bMXbWiBnwb1NBoM,310
|
|
2
|
-
flock/agent.py,sha256=
|
|
2
|
+
flock/agent.py,sha256=vNvfn6UzIyjGLdRwPutoWUJQETnPpX4K8Y2H8lMEFXM,25341
|
|
3
3
|
flock/artifacts.py,sha256=Xnizu0V4Jbwd1yV_FhXjUZG8Em-5GYsLt7sMX0V2OKI,2222
|
|
4
4
|
flock/cli.py,sha256=Ay_Z4KDd5wnnF1fLr0NqjMF7kRm_9X_1RXyv5GETDAY,2126
|
|
5
|
-
flock/components.py,sha256=
|
|
5
|
+
flock/components.py,sha256=17vhNMHKc3VUruEbSdb9YNKcDziIe0coS9jpfWBmX4o,6259
|
|
6
6
|
flock/examples.py,sha256=61xkD48yCW-aDrUXIrqrvxLtV8Vn4DrraQrHrrEUnWA,3530
|
|
7
|
-
flock/orchestrator.py,sha256=
|
|
7
|
+
flock/orchestrator.py,sha256=u5OOyB49kTd8lHyI4gprGk_YyNhQ3nZgYSKz45LpZiQ,28761
|
|
8
8
|
flock/registry.py,sha256=s0-H-TMtOsDZiZQCc7T1tYiWQg3OZHn5T--jaI_INIc,4786
|
|
9
9
|
flock/runtime.py,sha256=3C8AYzwwQEwFvwAsIoFN9QSQDWT8l8KzgekhPEsdUM0,8508
|
|
10
10
|
flock/service.py,sha256=cfvcsqZw9xOsEggncZ08zmiDxFiZpxsBYDSji5OIQQ8,5256
|
|
@@ -17,11 +17,11 @@ flock/dashboard/__init__.py,sha256=6keizAfjuZJnM5S9wYVVqb2nJRVAa7nN1L0a288dbn8,7
|
|
|
17
17
|
flock/dashboard/collector.py,sha256=dF8uddDMpOSdxGkhDSAvRNNaABo-TfOceipf1SQmLSU,10578
|
|
18
18
|
flock/dashboard/events.py,sha256=ujdmRJK-GQubrv43qfQ73dnrTj7g39VzBkWfmskJ0j8,5234
|
|
19
19
|
flock/dashboard/launcher.py,sha256=zXWVpyLNxCIu6fJ2L2j2sJ4oDWTvkxhT4FWz7K6eooM,8122
|
|
20
|
-
flock/dashboard/service.py,sha256=
|
|
20
|
+
flock/dashboard/service.py,sha256=5QGPT2xSbMx6Zd9_GSKJ8QtxOnBucx9BZAQhpWyUfgw,32097
|
|
21
21
|
flock/dashboard/websocket.py,sha256=gGJPNLy4OR-0eTKJQ3oFmZVjCq-ulMNrKJVFCFcprhU,9003
|
|
22
22
|
flock/engines/__init__.py,sha256=waNyObJ8PKCLFZL3WUFynxSK-V47m559P3Px-vl_OSc,124
|
|
23
23
|
flock/engines/dspy_engine.py,sha256=Q2gPYLW_f8f-JuBYOMtjtoCZH8Fc447zWF8cHpJl4ew,34538
|
|
24
|
-
flock/frontend/README.md,sha256=
|
|
24
|
+
flock/frontend/README.md,sha256=OFdOItV8FGifmUDb694rV2xLC0vl1HlR5KBEtYv5AB0,25054
|
|
25
25
|
flock/frontend/index.html,sha256=BFg1VR_YVAJ_MGN16xa7sT6wTGwtFYUhfJhGuKv89VM,312
|
|
26
26
|
flock/frontend/package-lock.json,sha256=5c-ZQHqHYZ2CHlsyHOBss-tncxplSuHO3mddWt_-jJM,150998
|
|
27
27
|
flock/frontend/package.json,sha256=MXt8jZodw6cysyJF-Hb50L_5AoMCEma5F80YGCp8fC4,1258
|
|
@@ -84,16 +84,21 @@ flock/frontend/src/components/layout/Header.tsx,sha256=0Fkd2-KIvbhExizfAa05uSrUB
|
|
|
84
84
|
flock/frontend/src/components/modules/EventLogModule.test.tsx,sha256=S-0fd5qy5QMutvIc7liZ8sCJWBR-fqePN27gMNqaU-E,14386
|
|
85
85
|
flock/frontend/src/components/modules/EventLogModule.tsx,sha256=9IY_eJq4WLY0ZwABFWH__C34UfwL4J_0_U_Jwmqypt0,14941
|
|
86
86
|
flock/frontend/src/components/modules/EventLogModuleWrapper.tsx,sha256=daT8R3jSBTe4WU2orr9SwbW40osPsvbzmBL3nQo_GOU,506
|
|
87
|
+
flock/frontend/src/components/modules/JsonAttributeRenderer.tsx,sha256=PyZAzcEpmVXkWVY4WU08haxY6aqEsaw2k3EPfFKYGF4,4835
|
|
87
88
|
flock/frontend/src/components/modules/ModuleRegistry.test.ts,sha256=gwpRhu0cKp_V3cODpiVKNIMOs33Z6vUxuWpWGmm2Z7U,10419
|
|
88
89
|
flock/frontend/src/components/modules/ModuleRegistry.ts,sha256=Zgnr7pa-hcGc-o7gKs1NYKuZAjZp8EORKMnLFSK7iT8,2410
|
|
89
|
-
flock/frontend/src/components/modules/ModuleWindow.tsx,sha256=
|
|
90
|
-
flock/frontend/src/components/modules/
|
|
90
|
+
flock/frontend/src/components/modules/ModuleWindow.tsx,sha256=RCeWOHWRAWsz46rzGdaBJz61ZJn1rMs2_wePNLeu5OM,7746
|
|
91
|
+
flock/frontend/src/components/modules/TraceModuleJaeger.tsx,sha256=V_QoDKiN4danykesL5suIVnGH2tz7U2fDr565t5ZSB4,78275
|
|
92
|
+
flock/frontend/src/components/modules/TraceModuleJaegerWrapper.tsx,sha256=CLUVG79wEAWTXdMsoBAwR-fRmg_gdjBPcFSk8Zh80w8,390
|
|
93
|
+
flock/frontend/src/components/modules/registerModules.ts,sha256=WRS_mK9Ye35DBdLlC50v9LhGVG42QwdOTrKl-YvRba4,926
|
|
91
94
|
flock/frontend/src/components/settings/AdvancedSettings.tsx,sha256=Ngw5jAIRn3ocXC9r89EwpMJRCK8kMO-Jj2pBZhJ-Uls,6349
|
|
92
95
|
flock/frontend/src/components/settings/AppearanceSettings.tsx,sha256=UHH4BcJ9-F-nRJEJf2rzmX0W-0hvmeKo6AYNF3lZPWE,6872
|
|
93
96
|
flock/frontend/src/components/settings/GraphSettings.tsx,sha256=qX1F4hnsxGcCbn3oHP7nsPPMLyETHG3UL55kJ_3tA-s,3815
|
|
94
|
-
flock/frontend/src/components/settings/
|
|
97
|
+
flock/frontend/src/components/settings/MultiSelect.tsx,sha256=aFjk8pt18UFHIPh-MXxEepjh-haNYhxEwzMiewSKFbU,7005
|
|
98
|
+
flock/frontend/src/components/settings/SettingsPanel.css,sha256=5ThwfEexKrXEQ_Z73tcA_rg2HxxV2vuptSuuuvwHURY,7067
|
|
95
99
|
flock/frontend/src/components/settings/SettingsPanel.tsx,sha256=62GXPCQzYdbk17XYVOx_vCeWlVyFZSxp3w0JTkp3z60,4392
|
|
96
100
|
flock/frontend/src/components/settings/ThemeSelector.tsx,sha256=LDTaqFzWPa7Uw3IRp60l6TI5dLvfsel-Xl3GhuCuf30,10548
|
|
101
|
+
flock/frontend/src/components/settings/TracingSettings.tsx,sha256=zHZrUuVQzUANclHfvTndm50zHYX1y-LecFnrloh2Hkc,14224
|
|
97
102
|
flock/frontend/src/hooks/useKeyboardShortcuts.ts,sha256=Dsf64nPtJdW2kV-a-bBpaq1VXZkXyxpioBnI1WIGduM,5019
|
|
98
103
|
flock/frontend/src/hooks/useModulePersistence.test.ts,sha256=kqYlFSzqYK_0jGxeRTeXORZ2KTDo3MdByJ2t2ivbg20,14323
|
|
99
104
|
flock/frontend/src/hooks/useModulePersistence.ts,sha256=ShXIE-OkwJrMYUNRDGjbZQVs4TK97sI85uc0BG6NuWo,5338
|
|
@@ -125,7 +130,7 @@ flock/frontend/src/styles/variables.css,sha256=EcOH8mb8ZIoGZU5c-K_2zcuGdtbu_vQWk
|
|
|
125
130
|
flock/frontend/src/test/setup.ts,sha256=pG1mhRrywFboBf3VdL9ew62xGBxDxeQfChxZLjOK_mQ,36
|
|
126
131
|
flock/frontend/src/types/filters.ts,sha256=mZMrXh0vzhjBAjtTj9EE9IgApUPmwyBzsIk1Ez2guhk,313
|
|
127
132
|
flock/frontend/src/types/graph.ts,sha256=E1Kwhg1MyVZypB8uYh9srcHrxEh18px4ZzWvPifJjss,1774
|
|
128
|
-
flock/frontend/src/types/modules.ts,sha256=
|
|
133
|
+
flock/frontend/src/types/modules.ts,sha256=l5ThtDoD1AxXLjGya-EdQM3eAU55Q0J4XZHQsFrUWws,341
|
|
129
134
|
flock/frontend/src/types/theme.ts,sha256=bjV2zWxBJilEXeosjSSirw05dL7zICShUDx2H0oA5J8,903
|
|
130
135
|
flock/frontend/src/utils/mockData.ts,sha256=kAYLkUZCmz09wj6p2q_ZqBUNNROyOFJz5uF3M4nBJRk,1961
|
|
131
136
|
flock/frontend/src/utils/performance.ts,sha256=ZcZjR8DKwF2ixveng2tKIRiW8wZ-ee_RPZFfi1jm4Zo,507
|
|
@@ -133,16 +138,18 @@ flock/frontend/src/utils/transforms.test.ts,sha256=zqScvoEyXk_UPaQj2UuJGc5c85p1_
|
|
|
133
138
|
flock/frontend/src/utils/transforms.ts,sha256=a4SZJGchhnIjJugEIxvLqdvOgMlKIGZ3NsGTrhupE6A,10301
|
|
134
139
|
flock/helper/cli_helper.py,sha256=b76d8tiGFMLAHHuOdIPqAbwUtQ_T9jQfYn6tlR2VM9Y,50063
|
|
135
140
|
flock/logging/__init__.py,sha256=RyR9jTC0q02Fh0L8easQfki2uCOSTii5MPhrxcqQNsg,163
|
|
141
|
+
flock/logging/auto_trace.py,sha256=XN7_8iRO46FOHiy23F5_Iw7KFYAbALDmau6HOZAM2XY,5543
|
|
136
142
|
flock/logging/logging.py,sha256=hYq4Il1ApRytARQfJUsMqnjGJiLW2Y5Ou7s2zHRlns4,20128
|
|
137
|
-
flock/logging/telemetry.py,sha256=
|
|
138
|
-
flock/logging/trace_and_logged.py,sha256=
|
|
143
|
+
flock/logging/telemetry.py,sha256=oLVGARUyYqXfeZjh9CPlnPHnvadUxUs8V5NWHWg7l4U,8226
|
|
144
|
+
flock/logging/trace_and_logged.py,sha256=oEMr60Mh2nACiupaIKmWtRkYlqmoWAUUZFxD4UYqHdY,11358
|
|
139
145
|
flock/logging/formatters/enum_builder.py,sha256=JMZCxZxm7TX2uVD9l4nIeSPKmSFZV-5v7omXS1Qu1cI,969
|
|
140
146
|
flock/logging/formatters/theme_builder.py,sha256=RubV95MY04zB5MIK7814dFoLsTU_wpS7in-GcEjN14o,17007
|
|
141
147
|
flock/logging/formatters/themed_formatter.py,sha256=idnv8-QAy9UxgOE4g33bUGzoToVyGsvQ_ZYYeDboDhE,20075
|
|
142
148
|
flock/logging/formatters/themes.py,sha256=80BRJJB0LZr11N0yQw2f8vdb_9179qjQO8PoeBaLMN0,10680
|
|
143
149
|
flock/logging/span_middleware/baggage_span_processor.py,sha256=gJfRl8FeB6jdtghTaRHCrOaTo4fhPMRKgjqtZj-8T48,1118
|
|
144
150
|
flock/logging/telemetry_exporter/base_exporter.py,sha256=T8l7GwjIulc2KbkgmhJbQ_psrLNwTGNSi23jvw6MKVA,1205
|
|
145
|
-
flock/logging/telemetry_exporter/
|
|
151
|
+
flock/logging/telemetry_exporter/duckdb_exporter.py,sha256=rhd5_ewqrfo4Uh7mzACImwjn6nQp72NbjSur8GZHbic,8369
|
|
152
|
+
flock/logging/telemetry_exporter/file_exporter.py,sha256=uTgQZSKfbLjzypirBbiVnccaKBDkiRzhFvUdV26pKEY,3126
|
|
146
153
|
flock/logging/telemetry_exporter/sqlite_exporter.py,sha256=754G8s4X-JHHpCdoNydJnPX4NZijZk9URutfPWFIT7s,3479
|
|
147
154
|
flock/mcp/__init__.py,sha256=QuANhTz09E2fFhtp2yJ716WxXKwEpCMTGqHj54VRs2Q,2512
|
|
148
155
|
flock/mcp/client.py,sha256=QcxSdj3iUsWSsOR0l2IpZdr_dyvaqslmyuSk_LZEamQ,24610
|
|
@@ -163,7 +170,7 @@ flock/mcp/types/factories.py,sha256=B7h8apMDT2nR6POOj7aWWn39UbELt6nxHluPhRmemGw,
|
|
|
163
170
|
flock/mcp/types/handlers.py,sha256=6ukkSMv1VZSfk2QDUiJnm8xifHnQvWZsxWXqN21BYSg,7804
|
|
164
171
|
flock/mcp/types/types.py,sha256=ZbzbVihABFnfmZz2X-CCN7hQDzaSY0T-en43PFbFwQQ,11469
|
|
165
172
|
flock/mcp/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
166
|
-
flock/mcp/util/helpers.py,sha256=
|
|
173
|
+
flock/mcp/util/helpers.py,sha256=jO8DqqSb_S4dyvsxv5vlMGRoMx92Su_5-Uv17gQNuLU,740
|
|
167
174
|
flock/themes/3024-day.toml,sha256=uOVHqEzSyHx0WlUk3D0lne4RBsNBAPCTy3C58yU7kEY,667
|
|
168
175
|
flock/themes/3024-night.toml,sha256=qsXUwd6ZYz6J-R129_Ao2TKlvvK60svhZJJjB5c8Tfo,1667
|
|
169
176
|
flock/themes/aardvark-blue.toml,sha256=5ZgsxP3pWLPN3yJ2Wd9ErCo7fy_VJpIfje4kriDKlqo,1667
|
|
@@ -501,8 +508,8 @@ flock/themes/zenburned.toml,sha256=UEmquBbcAO3Zj652XKUwCsNoC2iQSlIh-q5c6DH-7Kc,1
|
|
|
501
508
|
flock/themes/zenwritten-dark.toml,sha256=-dgaUfg1iCr5Dv4UEeHv_cN4GrPUCWAiHSxWK20X1kI,1663
|
|
502
509
|
flock/themes/zenwritten-light.toml,sha256=G1iEheCPfBNsMTGaVpEVpDzYBHA_T-MV27rolUYolmE,1666
|
|
503
510
|
flock/utility/output_utility_component.py,sha256=yVHhlIIIoYKziI5UyT_zvQb4G-NsxCTgLwA1wXXTTj4,9047
|
|
504
|
-
flock_core-0.5.
|
|
505
|
-
flock_core-0.5.
|
|
506
|
-
flock_core-0.5.
|
|
507
|
-
flock_core-0.5.
|
|
508
|
-
flock_core-0.5.
|
|
511
|
+
flock_core-0.5.0b54.dist-info/METADATA,sha256=Cya7lUjCkTgZEb8NOLioP69ujBpzDTIavb2wpfMNR5s,30008
|
|
512
|
+
flock_core-0.5.0b54.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
513
|
+
flock_core-0.5.0b54.dist-info/entry_points.txt,sha256=UQdPmtHd97gSA_IdLt9MOd-1rrf_WO-qsQeIiHWVrp4,42
|
|
514
|
+
flock_core-0.5.0b54.dist-info/licenses/LICENSE,sha256=U3IZuTbC0yLj7huwJdldLBipSOHF4cPf6cUOodFiaBE,1072
|
|
515
|
+
flock_core-0.5.0b54.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|