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.

@@ -1,12 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flock-core
3
- Version: 0.5.0b52
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=sQ7RGQYmr8ke_iv5eFmgrijlgidct5xgueWAisVvezk,25190
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=nqlW4SC8MnF6aDpoq-nnHv7uyUhGfKgvCxBhgHVBn-k,5698
5
+ flock/components.py,sha256=17vhNMHKc3VUruEbSdb9YNKcDziIe0coS9jpfWBmX4o,6259
6
6
  flock/examples.py,sha256=61xkD48yCW-aDrUXIrqrvxLtV8Vn4DrraQrHrrEUnWA,3530
7
- flock/orchestrator.py,sha256=XsVulRSd02pKFrPoS5I0AMUPXnUR_VmzgEYVidgixTo,24105
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=UFP2duq1r9AQ8keIRGgFjzszPQHxJd-oRSTZNrSQ1Vg,20598
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=3qc7FyvqFGDqVzi_MJ33qSREN900BnkpFXDQ8cgz4jA,21866
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=eNRY3UsC5V35QNVA6Vdq1rkBoopLpJs_cxvYJ1S5qMk,4930
90
- flock/frontend/src/components/modules/registerModules.ts,sha256=hbJSp5JQNbRLm5EpsGBrU3ngstLUrHpwIixpki42Dm8,554
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/SettingsPanel.css,sha256=dnxfgIkBsZxrka7fqHSMsysZJ0sHo4uY_TIkY_ZFTjI,7067
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=kW8fTe9CjsKgEdTWPZK6zv4zAUJGnP2bI8RmgXbiip4,213
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=Hn9RBcqRYVrH3tlReb3k66VgdrKM-jlDmBTm4M6abrw,7432
138
- flock/logging/trace_and_logged.py,sha256=hapAb00dziaODJAttXXPUKA1s9PmmLMsoH3TuSMwnKM,1959
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/file_exporter.py,sha256=gxdyMY9sAX8RxbaGViHEntbDjSj_KaaxMsu126MBNCw,2927
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=TDVoIfSIhdti9ATJaCG4cDjetndiNAaCXv3uzkzgHzE,659
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.0b52.dist-info/METADATA,sha256=s_IqAgspwnjKuTvYWi-Obi7xmXbZDZvBjuOrZidYOPE,24592
505
- flock_core-0.5.0b52.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
506
- flock_core-0.5.0b52.dist-info/entry_points.txt,sha256=UQdPmtHd97gSA_IdLt9MOd-1rrf_WO-qsQeIiHWVrp4,42
507
- flock_core-0.5.0b52.dist-info/licenses/LICENSE,sha256=U3IZuTbC0yLj7huwJdldLBipSOHF4cPf6cUOodFiaBE,1072
508
- flock_core-0.5.0b52.dist-info/RECORD,,
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,,