flock-core 0.4.508__py3-none-any.whl → 0.4.510__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/core/logging/logging.py +2 -2
- flock/tools/__init__.py +0 -188
- flock/tools/zendesk_tools.py +52 -4
- flock/webapp/app/main.py +25 -19
- {flock_core-0.4.508.dist-info → flock_core-0.4.510.dist-info}/METADATA +1 -1
- {flock_core-0.4.508.dist-info → flock_core-0.4.510.dist-info}/RECORD +9 -9
- {flock_core-0.4.508.dist-info → flock_core-0.4.510.dist-info}/WHEEL +0 -0
- {flock_core-0.4.508.dist-info → flock_core-0.4.510.dist-info}/entry_points.txt +0 -0
- {flock_core-0.4.508.dist-info → flock_core-0.4.510.dist-info}/licenses/LICENSE +0 -0
flock/core/logging/logging.py
CHANGED
|
@@ -250,7 +250,7 @@ loguru_logger.add(
|
|
|
250
250
|
colorize=True,
|
|
251
251
|
format=custom_format,
|
|
252
252
|
)
|
|
253
|
-
logging.basicConfig(level=LOG_LEVELS["
|
|
253
|
+
logging.basicConfig(level=LOG_LEVELS["ERROR"]) # Default to ERROR level for fallback
|
|
254
254
|
# Optionally add a file handler, e.g.:
|
|
255
255
|
# loguru_logger.add("logs/flock.log", rotation="100 MB", retention="30 days", level="DEBUG")
|
|
256
256
|
|
|
@@ -515,7 +515,7 @@ def get_logger(name: str = "flock") -> FlockLogger:
|
|
|
515
515
|
if name not in _LOGGER_CACHE:
|
|
516
516
|
# New loggers default to errors-only (min_level_severity = ERROR_SEVERITY)
|
|
517
517
|
# until explicitly configured by configure_logging()
|
|
518
|
-
_LOGGER_CACHE[name] = FlockLogger(name, LOG_LEVELS["
|
|
518
|
+
_LOGGER_CACHE[name] = FlockLogger(name, LOG_LEVELS["ERROR"])
|
|
519
519
|
# The min_level_severity state of existing or newly created loggers
|
|
520
520
|
# should be managed by the configure_logging() function.
|
|
521
521
|
return _LOGGER_CACHE[name]
|
flock/tools/__init__.py
CHANGED
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
from .azure_tools import (
|
|
2
|
-
azure_search_create_index,
|
|
3
|
-
azure_search_create_vector_index,
|
|
4
|
-
azure_search_delete_documents,
|
|
5
|
-
azure_search_get_document,
|
|
6
|
-
azure_search_get_index_statistics,
|
|
7
|
-
azure_search_initialize_clients,
|
|
8
|
-
azure_search_list_indexes,
|
|
9
|
-
azure_search_query,
|
|
10
|
-
azure_search_upload_documents,
|
|
11
|
-
azure_storage_create_container,
|
|
12
|
-
azure_storage_delete_blob,
|
|
13
|
-
azure_storage_delete_container,
|
|
14
|
-
azure_storage_download_blob_to_bytes,
|
|
15
|
-
azure_storage_download_blob_to_file,
|
|
16
|
-
azure_storage_download_blob_to_text,
|
|
17
|
-
azure_storage_get_blob_properties,
|
|
18
|
-
azure_storage_list_blobs,
|
|
19
|
-
azure_storage_list_containers,
|
|
20
|
-
azure_storage_upload_blob_bytes,
|
|
21
|
-
azure_storage_upload_blob_from_file,
|
|
22
|
-
azure_storage_upload_blob_text,
|
|
23
|
-
)
|
|
24
|
-
from .code_tools import code_code_eval, code_evaluate_math
|
|
25
|
-
from .file_tools import (
|
|
26
|
-
file_get_anything_as_markdown,
|
|
27
|
-
file_json_parse_safe,
|
|
28
|
-
file_json_search,
|
|
29
|
-
file_read_from_file,
|
|
30
|
-
file_save_to_file,
|
|
31
|
-
)
|
|
32
|
-
from .github_tools import (
|
|
33
|
-
github_create_files,
|
|
34
|
-
github_create_user_stories_as_github_issue,
|
|
35
|
-
github_upload_readme,
|
|
36
|
-
)
|
|
37
|
-
from .markdown_tools import (
|
|
38
|
-
markdown_extract_code_blocks,
|
|
39
|
-
markdown_extract_links,
|
|
40
|
-
markdown_extract_tables,
|
|
41
|
-
markdown_split_by_headers,
|
|
42
|
-
markdown_to_plain_text,
|
|
43
|
-
)
|
|
44
|
-
from .text_tools import (
|
|
45
|
-
text_calculate_hash,
|
|
46
|
-
text_chunking_for_embedding,
|
|
47
|
-
text_clean_text,
|
|
48
|
-
text_count_tokens,
|
|
49
|
-
text_count_tokens_estimate,
|
|
50
|
-
text_count_words,
|
|
51
|
-
text_detect_language,
|
|
52
|
-
text_extract_json_from_text,
|
|
53
|
-
text_extract_keywords,
|
|
54
|
-
text_extract_numbers,
|
|
55
|
-
text_extract_urls,
|
|
56
|
-
text_format_chat_history,
|
|
57
|
-
text_format_table_from_dicts,
|
|
58
|
-
text_recursive_splitter,
|
|
59
|
-
text_split_by_characters,
|
|
60
|
-
text_split_by_sentences,
|
|
61
|
-
text_split_by_separator,
|
|
62
|
-
text_split_by_tokens,
|
|
63
|
-
text_split_code_by_functions,
|
|
64
|
-
text_tiktoken_split,
|
|
65
|
-
text_truncate_to_token_limit,
|
|
66
|
-
)
|
|
67
|
-
from .web_tools import (
|
|
68
|
-
web_content_as_markdown,
|
|
69
|
-
web_search_bing,
|
|
70
|
-
web_search_duckduckgo,
|
|
71
|
-
web_search_tavily,
|
|
72
|
-
)
|
|
73
|
-
from .zendesk_tools import (
|
|
74
|
-
zendesk_get_article_by_id,
|
|
75
|
-
zendesk_get_articles,
|
|
76
|
-
zendesk_get_comments_by_ticket_id,
|
|
77
|
-
zendesk_get_ticket_by_id,
|
|
78
|
-
zendesk_get_tickets,
|
|
79
|
-
zendesk_search_articles,
|
|
80
|
-
)
|
|
81
|
-
|
|
82
|
-
storage_tools = [
|
|
83
|
-
azure_storage_list_containers,
|
|
84
|
-
azure_storage_create_container,
|
|
85
|
-
azure_storage_delete_container,
|
|
86
|
-
azure_storage_list_blobs,
|
|
87
|
-
azure_storage_upload_blob_text,
|
|
88
|
-
azure_storage_upload_blob_bytes,
|
|
89
|
-
azure_storage_upload_blob_from_file,
|
|
90
|
-
azure_storage_download_blob_to_text,
|
|
91
|
-
azure_storage_download_blob_to_bytes,
|
|
92
|
-
azure_storage_download_blob_to_file,
|
|
93
|
-
azure_storage_delete_blob,
|
|
94
|
-
azure_storage_get_blob_properties,
|
|
95
|
-
]
|
|
96
|
-
|
|
97
|
-
azure_search_tools = [
|
|
98
|
-
azure_search_initialize_clients,
|
|
99
|
-
azure_search_create_index,
|
|
100
|
-
azure_search_upload_documents,
|
|
101
|
-
azure_search_query,
|
|
102
|
-
azure_search_get_document,
|
|
103
|
-
azure_search_delete_documents,
|
|
104
|
-
azure_search_list_indexes,
|
|
105
|
-
azure_search_get_index_statistics,
|
|
106
|
-
azure_search_create_vector_index,
|
|
107
|
-
]
|
|
108
|
-
|
|
109
|
-
file_tools_collection = [
|
|
110
|
-
file_get_anything_as_markdown,
|
|
111
|
-
file_save_to_file,
|
|
112
|
-
file_read_from_file,
|
|
113
|
-
file_json_parse_safe,
|
|
114
|
-
file_json_search,
|
|
115
|
-
]
|
|
116
|
-
|
|
117
|
-
code_tools_collection = [code_evaluate_math, code_code_eval]
|
|
118
|
-
|
|
119
|
-
web_tools_collection = [
|
|
120
|
-
web_content_as_markdown,
|
|
121
|
-
web_search_bing,
|
|
122
|
-
web_search_duckduckgo,
|
|
123
|
-
web_search_tavily,
|
|
124
|
-
]
|
|
125
|
-
|
|
126
|
-
github_tools_collection = [
|
|
127
|
-
github_create_user_stories_as_github_issue,
|
|
128
|
-
github_upload_readme,
|
|
129
|
-
github_create_files,
|
|
130
|
-
]
|
|
131
|
-
|
|
132
|
-
llm_processing_tools = [
|
|
133
|
-
text_split_by_sentences,
|
|
134
|
-
text_split_by_characters,
|
|
135
|
-
text_split_by_tokens,
|
|
136
|
-
text_split_by_separator,
|
|
137
|
-
text_recursive_splitter,
|
|
138
|
-
text_chunking_for_embedding,
|
|
139
|
-
text_split_code_by_functions,
|
|
140
|
-
text_count_tokens,
|
|
141
|
-
text_count_tokens_estimate,
|
|
142
|
-
text_truncate_to_token_limit,
|
|
143
|
-
text_extract_keywords,
|
|
144
|
-
text_clean_text,
|
|
145
|
-
text_format_chat_history,
|
|
146
|
-
text_extract_json_from_text,
|
|
147
|
-
text_calculate_hash,
|
|
148
|
-
text_format_table_from_dicts,
|
|
149
|
-
text_detect_language,
|
|
150
|
-
text_tiktoken_split,
|
|
151
|
-
text_count_words,
|
|
152
|
-
text_extract_urls,
|
|
153
|
-
text_extract_numbers,
|
|
154
|
-
]
|
|
155
|
-
|
|
156
|
-
markdown_processing_tools = [
|
|
157
|
-
markdown_split_by_headers,
|
|
158
|
-
markdown_extract_code_blocks,
|
|
159
|
-
markdown_extract_links,
|
|
160
|
-
markdown_extract_tables,
|
|
161
|
-
markdown_to_plain_text,
|
|
162
|
-
]
|
|
163
|
-
|
|
164
|
-
zendesk_tools_collection = [
|
|
165
|
-
zendesk_get_tickets,
|
|
166
|
-
zendesk_get_ticket_by_id,
|
|
167
|
-
zendesk_get_comments_by_ticket_id,
|
|
168
|
-
zendesk_get_article_by_id,
|
|
169
|
-
zendesk_get_articles,
|
|
170
|
-
zendesk_search_articles,
|
|
171
|
-
]
|
|
172
|
-
|
|
173
|
-
__all__ = [
|
|
174
|
-
"azure_search_tools",
|
|
175
|
-
"code_tools_collection",
|
|
176
|
-
"file_tools_collection",
|
|
177
|
-
"github_tools_collection",
|
|
178
|
-
"llm_processing_tools",
|
|
179
|
-
"markdown_processing_tools",
|
|
180
|
-
"storage_tools",
|
|
181
|
-
"web_tools_collection",
|
|
182
|
-
"zendesk_tools_collection",
|
|
183
|
-
]
|
|
184
|
-
|
|
185
|
-
# If there was existing content in __init__.py, this approach might overwrite it.
|
|
186
|
-
# A safer approach if __init__.py might exist and have other critical initializations
|
|
187
|
-
# would be to read it first, then append/modify.
|
|
188
|
-
# For now, assuming a fresh creation or simple __init__.py.
|
flock/tools/zendesk_tools.py
CHANGED
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
import os
|
|
4
4
|
|
|
5
5
|
import httpx
|
|
6
|
+
from mcp.server.fastmcp import FastMCP
|
|
7
|
+
|
|
8
|
+
mcp = FastMCP("ZendeskTools")
|
|
9
|
+
|
|
6
10
|
|
|
7
11
|
ZENDESK_BEARER_TOKEN = os.getenv("ZENDESK_BEARER_TOKEN")
|
|
8
12
|
|
|
@@ -12,6 +16,7 @@ HEADERS = {
|
|
|
12
16
|
}
|
|
13
17
|
|
|
14
18
|
|
|
19
|
+
@mcp.tool()
|
|
15
20
|
def zendesk_get_tickets(number_of_tickets: int = 10) -> list[dict]:
|
|
16
21
|
"""Get all tickets."""
|
|
17
22
|
ZENDESK_SUBDOMAIN = os.getenv("ZENDESK_SUBDOMAIN_TICKET")
|
|
@@ -30,7 +35,7 @@ def zendesk_get_tickets(number_of_tickets: int = 10) -> list[dict]:
|
|
|
30
35
|
url = data.get("next_page")
|
|
31
36
|
return all_tickets
|
|
32
37
|
|
|
33
|
-
|
|
38
|
+
@mcp.tool()
|
|
34
39
|
def zendesk_get_ticket_by_id(ticket_id: str) -> dict:
|
|
35
40
|
"""Get a ticket by ID."""
|
|
36
41
|
ZENDESK_SUBDOMAIN = os.getenv("ZENDESK_SUBDOMAIN_TICKET")
|
|
@@ -41,7 +46,7 @@ def zendesk_get_ticket_by_id(ticket_id: str) -> dict:
|
|
|
41
46
|
response.raise_for_status()
|
|
42
47
|
return response.json()["ticket"]
|
|
43
48
|
|
|
44
|
-
|
|
49
|
+
@mcp.tool()
|
|
45
50
|
def zendesk_get_comments_by_ticket_id(ticket_id: str) -> list[dict]:
|
|
46
51
|
"""Get all comments for a ticket."""
|
|
47
52
|
ZENDESK_SUBDOMAIN = os.getenv("ZENDESK_SUBDOMAIN_TICKET")
|
|
@@ -52,7 +57,7 @@ def zendesk_get_comments_by_ticket_id(ticket_id: str) -> list[dict]:
|
|
|
52
57
|
response.raise_for_status()
|
|
53
58
|
return response.json()["comments"]
|
|
54
59
|
|
|
55
|
-
|
|
60
|
+
@mcp.tool()
|
|
56
61
|
def zendesk_get_article_by_id(article_id: str) -> dict:
|
|
57
62
|
"""Get an article by ID."""
|
|
58
63
|
ZENDESK_LOCALE = os.getenv("ZENDESK_ARTICLE_LOCALE")
|
|
@@ -66,7 +71,7 @@ def zendesk_get_article_by_id(article_id: str) -> dict:
|
|
|
66
71
|
response.raise_for_status()
|
|
67
72
|
return response.json()["article"]
|
|
68
73
|
|
|
69
|
-
|
|
74
|
+
@mcp.tool()
|
|
70
75
|
def zendesk_get_articles() -> list[dict]:
|
|
71
76
|
"""Get all articles."""
|
|
72
77
|
ZENDESK_LOCALE = os.getenv("ZENDESK_ARTICLE_LOCALE")
|
|
@@ -78,7 +83,45 @@ def zendesk_get_articles() -> list[dict]:
|
|
|
78
83
|
response.raise_for_status()
|
|
79
84
|
return response.json()["articles"]
|
|
80
85
|
|
|
86
|
+
@mcp.tool()
|
|
87
|
+
def zendesk_get_articles_count() -> int:
|
|
88
|
+
"""
|
|
89
|
+
Count every Help-Center article in the configured locale.
|
|
90
|
+
|
|
91
|
+
Uses cursor pagination (page[size]=100) because it’s faster and
|
|
92
|
+
has no 10 000-record ceiling. Falls back to offset pagination
|
|
93
|
+
if the account hasn’t been migrated yet.
|
|
94
|
+
"""
|
|
95
|
+
ZENDESK_LOCALE = os.getenv("ZENDESK_ARTICLE_LOCALE") # e.g. "en-us"
|
|
96
|
+
ZENDESK_SUBDOMAIN = os.getenv("ZENDESK_SUBDOMAIN_ARTICLE")
|
|
97
|
+
BASE_URL = f"https://{ZENDESK_SUBDOMAIN}.zendesk.com"
|
|
98
|
+
url = (
|
|
99
|
+
f"{BASE_URL}/api/v2/help_center/{ZENDESK_LOCALE}/articles.json"
|
|
100
|
+
"?page[size]=100" # max page size for HC APIs
|
|
101
|
+
)
|
|
102
|
+
|
|
103
|
+
total = 0
|
|
104
|
+
with httpx.Client(headers=HEADERS, timeout=30.0) as client:
|
|
105
|
+
while url:
|
|
106
|
+
resp = client.get(url)
|
|
107
|
+
resp.raise_for_status()
|
|
108
|
+
data = resp.json()
|
|
109
|
+
|
|
110
|
+
total += len(data.get("articles", []))
|
|
111
|
+
print(f"Locale: {ZENDESK_LOCALE}")
|
|
112
|
+
print(f"Number of articles: {total}")
|
|
113
|
+
|
|
114
|
+
# Cursor pagination (preferred)
|
|
115
|
+
if data.get("meta", {}).get("has_more"):
|
|
116
|
+
url = data.get("links", {}).get("next")
|
|
117
|
+
continue
|
|
118
|
+
|
|
119
|
+
# Offset pagination fallback
|
|
120
|
+
url = data.get("next_page")
|
|
121
|
+
|
|
122
|
+
return total
|
|
81
123
|
|
|
124
|
+
@mcp.tool()
|
|
82
125
|
def zendesk_search_articles(query: str) -> list[dict]:
|
|
83
126
|
"""Search Zendesk Help Center articles using a query string."""
|
|
84
127
|
ZENDESK_LOCALE = os.getenv("ZENDESK_ARTICLE_LOCALE") # e.g., "en-us"
|
|
@@ -97,3 +140,8 @@ def zendesk_search_articles(query: str) -> list[dict]:
|
|
|
97
140
|
response = client.get(url, params=params)
|
|
98
141
|
response.raise_for_status()
|
|
99
142
|
return response.json().get("results", [])
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
if __name__ == "__main__":
|
|
146
|
+
transport = os.getenv("ZENDESK_MCP_TRANSPORT", "stdio")
|
|
147
|
+
mcp.run(transport=transport)
|
flock/webapp/app/main.py
CHANGED
|
@@ -24,6 +24,7 @@ from fastapi.responses import HTMLResponse, RedirectResponse
|
|
|
24
24
|
from fastapi.staticfiles import StaticFiles
|
|
25
25
|
from fastapi.templating import Jinja2Templates
|
|
26
26
|
from pydantic import BaseModel
|
|
27
|
+
from typing import Any
|
|
27
28
|
|
|
28
29
|
from flock.core.api.endpoints import create_api_router
|
|
29
30
|
from flock.core.api.run_store import RunStore
|
|
@@ -147,23 +148,30 @@ async def lifespan(app: FastAPI):
|
|
|
147
148
|
set_global_shared_link_store(shared_link_store)
|
|
148
149
|
logger.info("SharedLinkStore initialized and set globally.")
|
|
149
150
|
except Exception as e:
|
|
150
|
-
logger.error(f"Failed to initialize SharedLinkStore: {e}", exc_info=True)
|
|
151
|
-
|
|
152
|
-
#
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
151
|
+
logger.error(f"Failed to initialize SharedLinkStore: {e}", exc_info=True) # Configure chat features with clear precedence:
|
|
152
|
+
# 1. Value set by start_unified_server (programmatic)
|
|
153
|
+
# 2. Environment variables (standalone mode)
|
|
154
|
+
programmatic_chat_enabled = getattr(app.state, "chat_enabled", None)
|
|
155
|
+
env_start_mode = os.environ.get("FLOCK_START_MODE")
|
|
156
|
+
env_chat_enabled = os.environ.get("FLOCK_CHAT_ENABLED", "false").lower() == "true"
|
|
157
|
+
|
|
158
|
+
if programmatic_chat_enabled is not None:
|
|
159
|
+
# Programmatic setting takes precedence (from start_unified_server)
|
|
160
|
+
should_enable_chat_routes = programmatic_chat_enabled
|
|
161
|
+
logger.info(f"Using programmatic chat_enabled setting: {should_enable_chat_routes}")
|
|
162
|
+
elif env_start_mode == "chat":
|
|
159
163
|
should_enable_chat_routes = True
|
|
160
|
-
app.state.initial_redirect_to_chat = True
|
|
161
|
-
|
|
162
|
-
|
|
164
|
+
app.state.initial_redirect_to_chat = True
|
|
165
|
+
app.state.chat_enabled = True
|
|
166
|
+
logger.info("FLOCK_START_MODE='chat'. Enabling chat routes and setting redirect.")
|
|
167
|
+
elif env_chat_enabled:
|
|
163
168
|
should_enable_chat_routes = True
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
169
|
+
app.state.chat_enabled = True
|
|
170
|
+
logger.info("FLOCK_CHAT_ENABLED='true'. Enabling chat routes.")
|
|
171
|
+
else:
|
|
172
|
+
should_enable_chat_routes = False
|
|
173
|
+
app.state.chat_enabled = False
|
|
174
|
+
logger.info("Chat routes disabled (no programmatic or environment setting).")
|
|
167
175
|
|
|
168
176
|
if should_enable_chat_routes:
|
|
169
177
|
try:
|
|
@@ -171,10 +179,8 @@ async def lifespan(app: FastAPI):
|
|
|
171
179
|
app.include_router(chat_router, tags=["Chat"])
|
|
172
180
|
logger.info("Chat routes included in the application.")
|
|
173
181
|
except Exception as e:
|
|
174
|
-
logger.error(f"Failed to include chat routes during lifespan startup: {e}", exc_info=True)
|
|
175
|
-
|
|
176
|
-
# If in standalone chat mode, strip non-essential UI routes
|
|
177
|
-
if flock_start_mode == "chat":
|
|
182
|
+
logger.error(f"Failed to include chat routes during lifespan startup: {e}", exc_info=True) # If in standalone chat mode, strip non-essential UI routes
|
|
183
|
+
if env_start_mode == "chat":
|
|
178
184
|
from fastapi.routing import APIRoute
|
|
179
185
|
logger.info("FLOCK_START_MODE='chat'. Stripping non-chat UI routes.")
|
|
180
186
|
|
|
@@ -52,7 +52,7 @@ flock/core/execution/local_executor.py,sha256=rnIQvaJOs6zZORUcR3vvyS6LPREDJTjayg
|
|
|
52
52
|
flock/core/execution/temporal_executor.py,sha256=dHcb0xuzPFWU_wbwTgI7glLNyyppei93Txs2sapjhaw,6283
|
|
53
53
|
flock/core/interpreter/python_interpreter.py,sha256=RaUMZuufsKBNQ4FAeSaOgUuxzs8VYu5TgUUs-xwaxxM,26376
|
|
54
54
|
flock/core/logging/__init__.py,sha256=xn5fC-8IgsdIv0ywe_cICK1KVhTrVD8t-jYORg0ETUA,155
|
|
55
|
-
flock/core/logging/logging.py,sha256
|
|
55
|
+
flock/core/logging/logging.py,sha256=-fYk4rv41LUbSLCzaSApg3cFTAk04bDR64-4ve-2mHk,19541
|
|
56
56
|
flock/core/logging/telemetry.py,sha256=Trssqx02SBovTL843YwY3L-ZGj3KvcfMHLMU7Syk8L0,6561
|
|
57
57
|
flock/core/logging/trace_and_logged.py,sha256=5vNrK1kxuPMoPJ0-QjQg-EDJL1oiEzvU6UNi6X8FiMs,2117
|
|
58
58
|
flock/core/logging/formatters/enum_builder.py,sha256=LgEYXUv84wK5vwHflZ5h8HBGgvLH3sByvUQe8tZiyY0,981
|
|
@@ -473,7 +473,7 @@ flock/themes/zenburn.toml,sha256=NxOAR3cx-Z9PVErEKHFZ6jsjfKBtPmfyN_vGSri5_qo,171
|
|
|
473
473
|
flock/themes/zenburned.toml,sha256=UEmquBbcAO3Zj652XKUwCsNoC2iQSlIh-q5c6DH-7Kc,1664
|
|
474
474
|
flock/themes/zenwritten-dark.toml,sha256=To5l6520_3UqAGiEumpzGWsHhXxqu9ThrMildXKgIO0,1669
|
|
475
475
|
flock/themes/zenwritten-light.toml,sha256=G1iEheCPfBNsMTGaVpEVpDzYBHA_T-MV27rolUYolmE,1666
|
|
476
|
-
flock/tools/__init__.py,sha256=
|
|
476
|
+
flock/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
477
477
|
flock/tools/azure_tools.py,sha256=OTJsb0B4l70GcD1W3ZMDHWd3X8nEnszhhz2sllD2z9E,30187
|
|
478
478
|
flock/tools/code_tools.py,sha256=CRDi3iIN4NQcgz4TJ4b-thFq7uXW_gIXPk-iEoWhF4E,1356
|
|
479
479
|
flock/tools/file_tools.py,sha256=zbXo5SxyKYLvrE7k3vLF5tGxCeuaeJtCCdWQ1fXJMAA,4626
|
|
@@ -482,14 +482,14 @@ flock/tools/markdown_tools.py,sha256=94fjGAJ5DEutoioD0ke-YRbxF6IWJQKuPVBLkNqdBo4
|
|
|
482
482
|
flock/tools/system_tools.py,sha256=IUB8MiSxtQH5ZfTGOck3vl4TKva8m1lfU4-W5D5b-4w,202
|
|
483
483
|
flock/tools/text_tools.py,sha256=mMQ8tkyYDxIorqqzl9ccGyWYjrSynYiYFIeP9qypfdg,22491
|
|
484
484
|
flock/tools/web_tools.py,sha256=Wl3qO5lKq4PYtmYahgeFGBQ8tDC0uKY4k9A1Zn-MqFw,2588
|
|
485
|
-
flock/tools/zendesk_tools.py,sha256=
|
|
485
|
+
flock/tools/zendesk_tools.py,sha256=e7KMfHVl7wGbstwdz9CvoChyuoZfpS9n4TEtvrxawgI,5162
|
|
486
486
|
flock/webapp/__init__.py,sha256=YtRbbyciN3Z2oMB9fdXZuvM3e49R8m2mY5qHLDoapRA,37
|
|
487
487
|
flock/webapp/run.py,sha256=Ekg-mQSl7RUDJAEDTBJMIlLyvhWqWPMjg8hPqmgFREE,8945
|
|
488
488
|
flock/webapp/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
489
489
|
flock/webapp/app/chat.py,sha256=d5a_mr3H2nuWNFSpSlI_HyqX-J_4krndd4A-8S25EKM,28679
|
|
490
490
|
flock/webapp/app/config.py,sha256=lqmneujnNZk-EFJV5cWpvxkqisxH3T3zT_YOI0JYThE,4809
|
|
491
491
|
flock/webapp/app/dependencies.py,sha256=JUcwY1N6SZplU141lMN2wk9dOC9er5HCedrKTJN9wJk,5533
|
|
492
|
-
flock/webapp/app/main.py,sha256=
|
|
492
|
+
flock/webapp/app/main.py,sha256=g3kjtzJOC0UzWBBT4D9KyBKJxQWM1TkxHgsDaFqNuGs,54247
|
|
493
493
|
flock/webapp/app/models_ui.py,sha256=vrEBLbhEp6FziAgBSFOLT1M7ckwadsTdT7qus5_NduE,329
|
|
494
494
|
flock/webapp/app/theme_mapper.py,sha256=QzWwLWpED78oYp3FjZ9zxv1KxCyj43m8MZ0fhfzz37w,34302
|
|
495
495
|
flock/webapp/app/utils.py,sha256=RF8DMKKAj1XPmm4txUdo2OdswI1ATQ7cqUm6G9JFDzA,2942
|
|
@@ -554,8 +554,8 @@ flock/workflow/agent_execution_activity.py,sha256=Gy6FtuVAjf0NiUXmC3syS2eJpNQF4R
|
|
|
554
554
|
flock/workflow/flock_workflow.py,sha256=iSUF_soFvWar0ffpkzE4irkDZRx0p4HnwmEBi_Ne2sY,9666
|
|
555
555
|
flock/workflow/temporal_config.py,sha256=3_8O7SDEjMsSMXsWJBfnb6XTp0TFaz39uyzSlMTSF_I,3988
|
|
556
556
|
flock/workflow/temporal_setup.py,sha256=YIHnSBntzOchHfMSh8hoLeNXrz3B1UbR14YrR6soM7A,1606
|
|
557
|
-
flock_core-0.4.
|
|
558
|
-
flock_core-0.4.
|
|
559
|
-
flock_core-0.4.
|
|
560
|
-
flock_core-0.4.
|
|
561
|
-
flock_core-0.4.
|
|
557
|
+
flock_core-0.4.510.dist-info/METADATA,sha256=dvIk6QrWRGCj3KgVkZWt6Lzi_d5eoAGbM_zRZLlLlnA,22584
|
|
558
|
+
flock_core-0.4.510.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
559
|
+
flock_core-0.4.510.dist-info/entry_points.txt,sha256=rWaS5KSpkTmWySURGFZk6PhbJ87TmvcFQDi2uzjlagQ,37
|
|
560
|
+
flock_core-0.4.510.dist-info/licenses/LICENSE,sha256=iYEqWy0wjULzM9GAERaybP4LBiPeu7Z1NEliLUdJKSc,1072
|
|
561
|
+
flock_core-0.4.510.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|