orchestrator-core 4.5.1a1__py3-none-any.whl → 4.5.3__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.
- orchestrator/__init__.py +3 -12
- orchestrator/agentic_app.py +48 -29
- orchestrator/api/api_v1/api.py +8 -6
- orchestrator/api/api_v1/endpoints/processes.py +2 -0
- orchestrator/api/api_v1/endpoints/search.py +26 -7
- orchestrator/cli/main.py +2 -2
- orchestrator/cli/search/__init__.py +32 -0
- orchestrator/devtools/populator.py +16 -0
- orchestrator/domain/base.py +2 -7
- orchestrator/domain/lifecycle.py +24 -7
- orchestrator/llm_settings.py +9 -3
- orchestrator/log_config.py +1 -0
- orchestrator/migrations/helpers.py +7 -1
- orchestrator/schemas/search.py +13 -0
- orchestrator/schemas/workflow.py +1 -0
- orchestrator/search/agent/__init__.py +15 -2
- orchestrator/search/agent/agent.py +30 -15
- orchestrator/search/agent/prompts.py +75 -37
- orchestrator/search/agent/state.py +13 -0
- orchestrator/search/agent/tools.py +148 -11
- orchestrator/search/core/__init__.py +12 -0
- orchestrator/search/core/embedding.py +13 -4
- orchestrator/search/core/exceptions.py +14 -0
- orchestrator/search/core/types.py +15 -0
- orchestrator/search/core/validators.py +13 -0
- orchestrator/search/docs/running_local_text_embedding_inference.md +1 -0
- orchestrator/search/filters/__init__.py +13 -0
- orchestrator/search/filters/base.py +84 -61
- orchestrator/search/filters/date_filters.py +13 -0
- orchestrator/search/filters/definitions.py +16 -2
- orchestrator/search/filters/ltree_filters.py +16 -3
- orchestrator/search/filters/numeric_filter.py +13 -0
- orchestrator/search/indexing/__init__.py +13 -0
- orchestrator/search/indexing/indexer.py +14 -3
- orchestrator/search/indexing/registry.py +13 -0
- orchestrator/search/indexing/tasks.py +17 -1
- orchestrator/search/indexing/traverse.py +17 -5
- orchestrator/search/llm_migration.py +108 -0
- orchestrator/search/retrieval/__init__.py +13 -0
- orchestrator/search/retrieval/builder.py +23 -8
- orchestrator/search/retrieval/engine.py +36 -34
- orchestrator/search/retrieval/exceptions.py +90 -0
- orchestrator/search/retrieval/pagination.py +13 -0
- orchestrator/search/retrieval/retrievers/__init__.py +26 -0
- orchestrator/search/retrieval/retrievers/base.py +123 -0
- orchestrator/search/retrieval/retrievers/fuzzy.py +94 -0
- orchestrator/search/retrieval/retrievers/hybrid.py +277 -0
- orchestrator/search/retrieval/retrievers/semantic.py +94 -0
- orchestrator/search/retrieval/retrievers/structured.py +39 -0
- orchestrator/search/retrieval/utils.py +21 -7
- orchestrator/search/retrieval/validation.py +54 -76
- orchestrator/search/schemas/__init__.py +12 -0
- orchestrator/search/schemas/parameters.py +13 -0
- orchestrator/search/schemas/results.py +15 -1
- orchestrator/services/processes.py +2 -1
- orchestrator/settings.py +7 -0
- orchestrator/utils/state.py +6 -1
- orchestrator/workflows/steps.py +16 -1
- orchestrator/workflows/tasks/validate_product_type.py +3 -3
- {orchestrator_core-4.5.1a1.dist-info → orchestrator_core-4.5.3.dist-info}/METADATA +14 -12
- {orchestrator_core-4.5.1a1.dist-info → orchestrator_core-4.5.3.dist-info}/RECORD +67 -60
- orchestrator/migrations/versions/schema/2025-08-12_52b37b5b2714_search_index_model_for_llm_integration.py +0 -95
- orchestrator/search/retrieval/retriever.py +0 -447
- /orchestrator/cli/{index_llm.py → search/index_llm.py} +0 -0
- /orchestrator/cli/{resize_embedding.py → search/resize_embedding.py} +0 -0
- /orchestrator/cli/{search_explore.py → search/search_explore.py} +0 -0
- /orchestrator/cli/{speedtest.py → search/speedtest.py} +0 -0
- {orchestrator_core-4.5.1a1.dist-info → orchestrator_core-4.5.3.dist-info}/WHEEL +0 -0
- {orchestrator_core-4.5.1a1.dist-info → orchestrator_core-4.5.3.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
# Copyright 2019-2025 SURF, GÉANT.
|
|
2
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
3
|
+
# you may not use this file except in compliance with the License.
|
|
4
|
+
# You may obtain a copy of the License at
|
|
5
|
+
#
|
|
6
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
+
#
|
|
8
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
9
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
10
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
11
|
+
# See the License for the specific language governing permissions and
|
|
12
|
+
# limitations under the License.
|
|
13
|
+
|
|
1
14
|
import uuid
|
|
2
15
|
from typing import Any, Literal
|
|
3
16
|
|
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
# Copyright 2019-2025 SURF, GÉANT.
|
|
2
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
3
|
+
# you may not use this file except in compliance with the License.
|
|
4
|
+
# You may obtain a copy of the License at
|
|
5
|
+
#
|
|
6
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
+
#
|
|
8
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
9
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
10
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
11
|
+
# See the License for the specific language governing permissions and
|
|
12
|
+
# limitations under the License.
|
|
13
|
+
|
|
1
14
|
from typing import Literal
|
|
2
15
|
|
|
3
16
|
from pydantic import BaseModel, ConfigDict
|
|
@@ -39,6 +52,7 @@ class ValueSchema(BaseModel):
|
|
|
39
52
|
class LeafInfo(BaseModel):
|
|
40
53
|
name: str
|
|
41
54
|
ui_types: list[UIType]
|
|
55
|
+
paths: list[str]
|
|
42
56
|
|
|
43
57
|
model_config = ConfigDict(
|
|
44
58
|
extra="forbid",
|
|
@@ -58,6 +72,6 @@ class ComponentInfo(BaseModel):
|
|
|
58
72
|
|
|
59
73
|
class TypeDefinition(BaseModel):
|
|
60
74
|
operators: list[FilterOp]
|
|
61
|
-
|
|
75
|
+
value_schema: dict[FilterOp, ValueSchema]
|
|
62
76
|
|
|
63
77
|
model_config = ConfigDict(use_enum_values=True)
|
|
@@ -492,7 +492,7 @@ def start_process(
|
|
|
492
492
|
process id
|
|
493
493
|
|
|
494
494
|
"""
|
|
495
|
-
pstat = create_process(workflow_key, user_inputs=user_inputs, user=user)
|
|
495
|
+
pstat = create_process(workflow_key, user_inputs=user_inputs, user=user, user_model=user_model)
|
|
496
496
|
|
|
497
497
|
start_func = get_execution_context()["start"]
|
|
498
498
|
return start_func(pstat, user=user, user_model=user_model, broadcast_func=broadcast_func)
|
|
@@ -524,6 +524,7 @@ def restart_process(
|
|
|
524
524
|
RESUMABLE_STATUSES = (
|
|
525
525
|
ProcessStatus.SUSPENDED, # Can be resumed
|
|
526
526
|
ProcessStatus.WAITING, # Can be retried
|
|
527
|
+
ProcessStatus.AWAITING_CALLBACK, # Can be resumed
|
|
527
528
|
ProcessStatus.FAILED, # Can be retried
|
|
528
529
|
ProcessStatus.API_UNAVAILABLE, # subtype of FAILED
|
|
529
530
|
ProcessStatus.INCONSISTENT_DATA, # subtype of FAILED
|
orchestrator/settings.py
CHANGED
|
@@ -30,6 +30,12 @@ class ExecutorType(strEnum):
|
|
|
30
30
|
THREADPOOL = "threadpool"
|
|
31
31
|
|
|
32
32
|
|
|
33
|
+
class LifecycleValidationMode(strEnum):
|
|
34
|
+
STRICT = "strict"
|
|
35
|
+
LOOSE = "loose"
|
|
36
|
+
IGNORED = "ignored"
|
|
37
|
+
|
|
38
|
+
|
|
33
39
|
class AppSettings(BaseSettings):
|
|
34
40
|
TESTING: bool = True
|
|
35
41
|
SESSION_SECRET: OrchSecretStr = "".join(secrets.choice(string.ascii_letters) for i in range(16)) # type: ignore
|
|
@@ -91,6 +97,7 @@ class AppSettings(BaseSettings):
|
|
|
91
97
|
FILTER_BY_MODE: Literal["partial", "exact"] = "exact"
|
|
92
98
|
EXPOSE_SETTINGS: bool = False
|
|
93
99
|
EXPOSE_OAUTH_SETTINGS: bool = False
|
|
100
|
+
LIFECYCLE_VALIDATION_MODE: LifecycleValidationMode = LifecycleValidationMode.LOOSE
|
|
94
101
|
|
|
95
102
|
|
|
96
103
|
app_settings = AppSettings()
|
orchestrator/utils/state.py
CHANGED
|
@@ -19,6 +19,7 @@ from typing import Any, cast, get_args
|
|
|
19
19
|
from uuid import UUID
|
|
20
20
|
|
|
21
21
|
from orchestrator.domain.base import SubscriptionModel
|
|
22
|
+
from orchestrator.domain.lifecycle import validate_subscription_model_product_type
|
|
22
23
|
from orchestrator.types import StepFunc, is_list_type, is_optional_type
|
|
23
24
|
from orchestrator.utils.functional import logger
|
|
24
25
|
from pydantic_forms.types import (
|
|
@@ -135,7 +136,7 @@ def _save_models(state: State) -> None:
|
|
|
135
136
|
def _build_arguments(func: StepFunc | InputStepFunc, state: State) -> list: # noqa: C901
|
|
136
137
|
"""Build actual arguments based on step function signature and state.
|
|
137
138
|
|
|
138
|
-
What the step function requests in its function signature
|
|
139
|
+
What the step function requests in its function signature is what this function retrieves from the state or DB.
|
|
139
140
|
Domain models are retrieved from the DB (after `subscription_id` lookup in the state). Everything else is
|
|
140
141
|
retrieved from the state.
|
|
141
142
|
|
|
@@ -186,6 +187,7 @@ def _build_arguments(func: StepFunc | InputStepFunc, state: State) -> list: # n
|
|
|
186
187
|
subscription_id = _get_sub_id(state.get(name))
|
|
187
188
|
if subscription_id:
|
|
188
189
|
sub_mod = param.annotation.from_subscription(subscription_id)
|
|
190
|
+
validate_subscription_model_product_type(sub_mod)
|
|
189
191
|
arguments.append(sub_mod)
|
|
190
192
|
else:
|
|
191
193
|
logger.error("Could not find key in state.", key=name, state=state)
|
|
@@ -198,12 +200,15 @@ def _build_arguments(func: StepFunc | InputStepFunc, state: State) -> list: # n
|
|
|
198
200
|
f"Step function argument '{param.name}' cannot be serialized from database with type 'Any'"
|
|
199
201
|
)
|
|
200
202
|
subscriptions = [actual_type.from_subscription(subscription_id) for subscription_id in subscription_ids]
|
|
203
|
+
for sub_mod in subscriptions:
|
|
204
|
+
validate_subscription_model_product_type(sub_mod)
|
|
201
205
|
arguments.append(subscriptions)
|
|
202
206
|
elif is_optional_type(param.annotation, SubscriptionModel):
|
|
203
207
|
subscription_id = _get_sub_id(state.get(name))
|
|
204
208
|
if subscription_id:
|
|
205
209
|
# Actual type is first argument from optional type
|
|
206
210
|
sub_mod = get_args(param.annotation)[0].from_subscription(subscription_id)
|
|
211
|
+
validate_subscription_model_product_type(sub_mod)
|
|
207
212
|
arguments.append(sub_mod)
|
|
208
213
|
else:
|
|
209
214
|
arguments.append(None)
|
orchestrator/workflows/steps.py
CHANGED
|
@@ -15,6 +15,7 @@ from copy import deepcopy
|
|
|
15
15
|
import structlog
|
|
16
16
|
from pydantic import ValidationError
|
|
17
17
|
|
|
18
|
+
from orchestrator import llm_settings
|
|
18
19
|
from orchestrator.db import db
|
|
19
20
|
from orchestrator.db.models import ProcessSubscriptionTable
|
|
20
21
|
from orchestrator.domain.base import SubscriptionModel
|
|
@@ -141,9 +142,23 @@ def set_status(status: SubscriptionLifecycle) -> Step:
|
|
|
141
142
|
|
|
142
143
|
|
|
143
144
|
@step("Refresh subscription search index")
|
|
144
|
-
def refresh_subscription_search_index() -> State:
|
|
145
|
+
def refresh_subscription_search_index(subscription: SubscriptionModel | None) -> State:
|
|
146
|
+
"""Refresh subscription search index.
|
|
147
|
+
|
|
148
|
+
Args:
|
|
149
|
+
subscription: Subscription to refresh search index.
|
|
150
|
+
|
|
151
|
+
Returns:
|
|
152
|
+
State of the workflow.
|
|
153
|
+
|
|
154
|
+
"""
|
|
145
155
|
try:
|
|
146
156
|
reset_search_index()
|
|
157
|
+
if llm_settings.SEARCH_ENABLED and subscription:
|
|
158
|
+
from orchestrator.search.core.types import EntityType
|
|
159
|
+
from orchestrator.search.indexing import run_indexing_for_entity
|
|
160
|
+
|
|
161
|
+
run_indexing_for_entity(EntityType.SUBSCRIPTION, str(subscription.subscription_id))
|
|
147
162
|
except Exception:
|
|
148
163
|
# Don't fail workflow in case of unexpected error
|
|
149
164
|
logger.warning("Error updated the subscriptions search index")
|
|
@@ -16,7 +16,7 @@ from typing import Any
|
|
|
16
16
|
import structlog
|
|
17
17
|
|
|
18
18
|
from orchestrator.db import ProductTable
|
|
19
|
-
from orchestrator.forms import
|
|
19
|
+
from orchestrator.forms import SubmitFormPage
|
|
20
20
|
from orchestrator.forms.validators import Choice
|
|
21
21
|
from orchestrator.services.subscriptions import (
|
|
22
22
|
get_subscriptions_on_product_table_in_sync,
|
|
@@ -32,7 +32,7 @@ from pydantic_forms.types import FormGenerator, State
|
|
|
32
32
|
logger = structlog.get_logger(__name__)
|
|
33
33
|
|
|
34
34
|
|
|
35
|
-
def create_select_product_type_form() -> type[
|
|
35
|
+
def create_select_product_type_form() -> type[SubmitFormPage]:
|
|
36
36
|
"""Get and create the choices form for the product type."""
|
|
37
37
|
|
|
38
38
|
@cache
|
|
@@ -41,7 +41,7 @@ def create_select_product_type_form() -> type[FormPage]:
|
|
|
41
41
|
|
|
42
42
|
ProductTypeChoices = Choice.__call__("Product Type", get_product_type_choices())
|
|
43
43
|
|
|
44
|
-
class SelectProductTypeForm(
|
|
44
|
+
class SelectProductTypeForm(SubmitFormPage):
|
|
45
45
|
product_type: ProductTypeChoices # type: ignore
|
|
46
46
|
|
|
47
47
|
return SelectProductTypeForm
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: orchestrator-core
|
|
3
|
-
Version: 4.5.
|
|
3
|
+
Version: 4.5.3
|
|
4
4
|
Summary: This is the orchestrator workflow engine.
|
|
5
5
|
Author-email: SURF <automation-beheer@surf.nl>
|
|
6
6
|
Requires-Python: >=3.11,<3.14
|
|
@@ -36,42 +36,44 @@ Requires-Dist: apscheduler>=3.11.0
|
|
|
36
36
|
Requires-Dist: click==8.*
|
|
37
37
|
Requires-Dist: deepmerge==2.0
|
|
38
38
|
Requires-Dist: deprecated>=1.2.18
|
|
39
|
-
Requires-Dist: fastapi~=0.115.
|
|
39
|
+
Requires-Dist: fastapi~=0.115.14
|
|
40
40
|
Requires-Dist: fastapi-etag==0.4.0
|
|
41
41
|
Requires-Dist: itsdangerous>=2.2.0
|
|
42
42
|
Requires-Dist: jinja2==3.1.6
|
|
43
43
|
Requires-Dist: more-itertools~=10.7.0
|
|
44
|
-
Requires-Dist: nwa-stdlib~=1.9.
|
|
44
|
+
Requires-Dist: nwa-stdlib~=1.9.2
|
|
45
45
|
Requires-Dist: oauth2-lib>=2.4.1
|
|
46
46
|
Requires-Dist: orjson==3.10.18
|
|
47
47
|
Requires-Dist: pgvector>=0.4.1
|
|
48
48
|
Requires-Dist: prometheus-client==0.22.1
|
|
49
49
|
Requires-Dist: psycopg2-binary==2.9.10
|
|
50
|
-
Requires-Dist: pydantic-forms>=1.4.0
|
|
50
|
+
Requires-Dist: pydantic-forms>=1.4.0
|
|
51
51
|
Requires-Dist: pydantic-settings~=2.9.1
|
|
52
|
-
Requires-Dist: pydantic[email]~=2.11.
|
|
52
|
+
Requires-Dist: pydantic[email]~=2.11.7
|
|
53
53
|
Requires-Dist: python-dateutil==2.8.2
|
|
54
54
|
Requires-Dist: python-rapidjson>=1.18,<1.21
|
|
55
55
|
Requires-Dist: pytz==2025.2
|
|
56
56
|
Requires-Dist: redis==5.1.1
|
|
57
57
|
Requires-Dist: semver==3.0.4
|
|
58
|
-
Requires-Dist: sentry-sdk[fastapi]
|
|
58
|
+
Requires-Dist: sentry-sdk[fastapi]>=2.29.1
|
|
59
59
|
Requires-Dist: sqlalchemy==2.0.41
|
|
60
60
|
Requires-Dist: sqlalchemy-utils==0.41.2
|
|
61
|
-
Requires-Dist: strawberry-graphql>=0.
|
|
61
|
+
Requires-Dist: strawberry-graphql>=0.281.0
|
|
62
62
|
Requires-Dist: structlog>=25.4.0
|
|
63
63
|
Requires-Dist: tabulate==0.9.0
|
|
64
64
|
Requires-Dist: typer==0.15.4
|
|
65
65
|
Requires-Dist: uvicorn[standard]~=0.34.0
|
|
66
|
+
Requires-Dist: pydantic-ai-slim ==0.7.0 ; extra == "agent"
|
|
67
|
+
Requires-Dist: ag-ui-protocol>=0.1.8 ; extra == "agent"
|
|
68
|
+
Requires-Dist: litellm>=1.75.7 ; extra == "agent"
|
|
66
69
|
Requires-Dist: celery~=5.5.1 ; extra == "celery"
|
|
67
|
-
Requires-Dist:
|
|
68
|
-
Requires-Dist: ag-ui-protocol>=0.1.8 ; extra == "llm"
|
|
69
|
-
Requires-Dist: litellm>=1.75.7 ; extra == "llm"
|
|
70
|
+
Requires-Dist: litellm>=1.75.7 ; extra == "search"
|
|
70
71
|
Project-URL: Documentation, https://workfloworchestrator.org/orchestrator-core
|
|
71
72
|
Project-URL: Homepage, https://workfloworchestrator.org/orchestrator-core
|
|
72
73
|
Project-URL: Source, https://github.com/workfloworchestrator/orchestrator-core
|
|
74
|
+
Provides-Extra: agent
|
|
73
75
|
Provides-Extra: celery
|
|
74
|
-
Provides-Extra:
|
|
76
|
+
Provides-Extra: search
|
|
75
77
|
|
|
76
78
|
# Orchestrator-Core
|
|
77
79
|
|
|
@@ -79,7 +81,7 @@ Provides-Extra: llm
|
|
|
79
81
|
[](https://codecov.io/gh/workfloworchestrator/orchestrator-core)
|
|
80
82
|
[](https://pypi.org/project/orchestrator-core)
|
|
81
83
|
[](https://pypi.org/project/orchestrator-core)
|
|
82
|
-

|
|
83
85
|
|
|
84
86
|
<p style="text-align: center"><em>Production ready Orchestration Framework to manage product lifecycle and workflows. Easy to use, built on top of FastAPI and Pydantic</em></p>
|
|
85
87
|
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
orchestrator/__init__.py,sha256=
|
|
2
|
-
orchestrator/agentic_app.py,sha256=
|
|
1
|
+
orchestrator/__init__.py,sha256=lAl6oSNu-QVncaN5mMYEuHLv8QFr-CZIMBXFmG7BBto,1447
|
|
2
|
+
orchestrator/agentic_app.py,sha256=op7osw7KJRww90iYuWBt_bB5qI-sAkpG0fyr0liubQw,3968
|
|
3
3
|
orchestrator/app.py,sha256=UPKQuDpg8MWNC6r3SRRbp6l9RBzwb00IMIaGRk-jbCU,13203
|
|
4
4
|
orchestrator/exception_handlers.py,sha256=UsW3dw8q0QQlNLcV359bIotah8DYjMsj2Ts1LfX4ClY,1268
|
|
5
|
-
orchestrator/llm_settings.py,sha256=
|
|
6
|
-
orchestrator/log_config.py,sha256=
|
|
5
|
+
orchestrator/llm_settings.py,sha256=UDehiEVXkRMfmPSfCTHQX8dtH2gLCGtZK_wQTU3yISg,2316
|
|
6
|
+
orchestrator/log_config.py,sha256=1cPl_OXT4tEUyNxG8cwIWXrmadUm1E81vq0mdtrV-v4,1912
|
|
7
7
|
orchestrator/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
8
8
|
orchestrator/security.py,sha256=iXFxGxab54aav7oHEKLAVkTgrQMJGHy6IYLojEnD7gI,2422
|
|
9
|
-
orchestrator/settings.py,sha256=
|
|
9
|
+
orchestrator/settings.py,sha256=Xl6bXd2VtosBTOuv4PClgVv9KoVDItThYkhDzf4IYxc,4560
|
|
10
10
|
orchestrator/targets.py,sha256=d7Fyh_mWIWPivA_E7DTNFpZID3xFW_K0JlZ5nksVX7k,830
|
|
11
11
|
orchestrator/types.py,sha256=qzs7xx5AYRmKbpYRyJJP3wuDb0W0bcAzefCN0RWLAco,15459
|
|
12
12
|
orchestrator/version.py,sha256=b58e08lxs47wUNXv0jXFO_ykpksmytuzEXD4La4W-NQ,1366
|
|
@@ -16,14 +16,14 @@ orchestrator/api/error_handling.py,sha256=YrPCxSa-DSa9KwqIMlXI-KGBGnbGIW5ukOPiik
|
|
|
16
16
|
orchestrator/api/helpers.py,sha256=s0QRHYw8AvEmlkmRhuEzz9xixaZKUF3YuPzUVHkcoXk,6933
|
|
17
17
|
orchestrator/api/models.py,sha256=z9BDBx7uI4KBHWbD_LVrLsqNQ0_w-Mg9Qiy7PR_rZhk,5996
|
|
18
18
|
orchestrator/api/api_v1/__init__.py,sha256=GyHNfEFCGKQwRiN6rQmvSRH2iYX7npjMZn97n8XzmLU,571
|
|
19
|
-
orchestrator/api/api_v1/api.py,sha256=
|
|
19
|
+
orchestrator/api/api_v1/api.py,sha256=bWsvWgLap7b6ltu1BvwZpW7X2dEE6cQ7-WY0HcY7Yoo,3279
|
|
20
20
|
orchestrator/api/api_v1/endpoints/__init__.py,sha256=GyHNfEFCGKQwRiN6rQmvSRH2iYX7npjMZn97n8XzmLU,571
|
|
21
21
|
orchestrator/api/api_v1/endpoints/health.py,sha256=iaxs1XX1_250_gKNsspuULCV2GEMBjbtjsmfQTOvMAI,1284
|
|
22
|
-
orchestrator/api/api_v1/endpoints/processes.py,sha256=
|
|
22
|
+
orchestrator/api/api_v1/endpoints/processes.py,sha256=OVbt6FgFnJ4aHaYGIg0cPoim8mxDpdzJ4TGAyfB_kPw,16269
|
|
23
23
|
orchestrator/api/api_v1/endpoints/product_blocks.py,sha256=kZ6ywIOsS_S2qGq7RvZ4KzjvaS1LmwbGWR37AKRvWOw,2146
|
|
24
24
|
orchestrator/api/api_v1/endpoints/products.py,sha256=BfFtwu9dZXEQbtKxYj9icc73GKGvAGMR5ytyf41nQlQ,3081
|
|
25
25
|
orchestrator/api/api_v1/endpoints/resource_types.py,sha256=gGyuaDyOD0TAVoeFGaGmjDGnQ8eQQArOxKrrk4MaDzA,2145
|
|
26
|
-
orchestrator/api/api_v1/endpoints/search.py,sha256=
|
|
26
|
+
orchestrator/api/api_v1/endpoints/search.py,sha256=NooZcMXmlnD1NxdhFWlqF3jhmixF1DZYuUG8XtEVGjo,10885
|
|
27
27
|
orchestrator/api/api_v1/endpoints/settings.py,sha256=5s-k169podZjgGHUbVDmSQwpY_3Cs_Bbf2PPtZIkBcw,6184
|
|
28
28
|
orchestrator/api/api_v1/endpoints/subscription_customer_descriptions.py,sha256=1_6LtgQleoq3M6z_W-Qz__Bj3OFUweoPrUqHMwSH6AM,3288
|
|
29
29
|
orchestrator/api/api_v1/endpoints/subscriptions.py,sha256=7KaodccUiMkcVnrFnK2azp_V_-hGudcIyhov5WwVGQY,9810
|
|
@@ -34,16 +34,12 @@ orchestrator/api/api_v1/endpoints/ws.py,sha256=1l7E0ag_sZ6UMfQPHlmew7ENwxjm6fflB
|
|
|
34
34
|
orchestrator/cli/__init__.py,sha256=GyHNfEFCGKQwRiN6rQmvSRH2iYX7npjMZn97n8XzmLU,571
|
|
35
35
|
orchestrator/cli/database.py,sha256=YkYAbCY2VPAa6mDW0PpNKG5wL4FuAQYD2CGl1_DQtEk,19595
|
|
36
36
|
orchestrator/cli/generate.py,sha256=SBaYfRijXPF9r3VxarPKTiDzDcB6GBMMQvecQIb_ZLQ,7377
|
|
37
|
-
orchestrator/cli/
|
|
38
|
-
orchestrator/cli/main.py,sha256=U4eAG_iT3JhmeB6yZnogB6KTM6kFlDUo7zY4qBdIHv4,1648
|
|
37
|
+
orchestrator/cli/main.py,sha256=xGLc_cS2LoSIbK5qkMFE7GCnZoOi5kATgtmQDFNQU7E,1658
|
|
39
38
|
orchestrator/cli/migrate_domain_models.py,sha256=WRXy_1OnziQwpsCFZXvjB30nDJtjj0ikVXy8YNLque4,20928
|
|
40
39
|
orchestrator/cli/migrate_tasks.py,sha256=bju8XColjSZD0v3rS4kl-24dLr8En_H4-6enBmqd494,7255
|
|
41
40
|
orchestrator/cli/migrate_workflows.py,sha256=nxUpx0vgEIc_8aJrjAyrw3E9Dt8JmaamTts8oiQ4vHY,8923
|
|
42
41
|
orchestrator/cli/migration_helpers.py,sha256=C5tpkP5WEBr7G9S-1k1hgSI8ili6xd9Z5ygc9notaK0,4110
|
|
43
|
-
orchestrator/cli/resize_embedding.py,sha256=ds830T26ADOD9vZS7psRHJVF_u2xar2d4vvIH1AOlww,4216
|
|
44
42
|
orchestrator/cli/scheduler.py,sha256=2q6xT_XVOodY3e_qzIV98MWNvKvrbFpOJajWesj1fcs,1911
|
|
45
|
-
orchestrator/cli/search_explore.py,sha256=SDn1DMN8a4roSPodIHl-KrNAvdHo5jTDUvMUFLVh1P4,8602
|
|
46
|
-
orchestrator/cli/speedtest.py,sha256=QkQ_YhKh7TnNRX4lKjgrmF7DyufU9teLqw4CWkm52ko,4972
|
|
47
43
|
orchestrator/cli/domain_gen_helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
48
44
|
orchestrator/cli/domain_gen_helpers/fixed_input_helpers.py,sha256=uzpwsaau81hHSxNMOS9-o7kF-9_78R0f_UE0AvWooZQ,6775
|
|
49
45
|
orchestrator/cli/domain_gen_helpers/helpers.py,sha256=tIPxn8ezED_xYZxH7ZAtQLwkDc6RNmLZVxWAoJ3a9lw,4203
|
|
@@ -106,6 +102,11 @@ orchestrator/cli/generator/templates/validate_product.j2,sha256=_gPNYS8dGOSpRm2E
|
|
|
106
102
|
orchestrator/cli/helpers/__init__.py,sha256=GyHNfEFCGKQwRiN6rQmvSRH2iYX7npjMZn97n8XzmLU,571
|
|
107
103
|
orchestrator/cli/helpers/input_helpers.py,sha256=pv5GTMuIWLzBE_bKNhn1XD_gxoqB0s1ZN4cnKkIIu5I,1139
|
|
108
104
|
orchestrator/cli/helpers/print_helpers.py,sha256=b3ePg6HfBLKPYBBVr5XOA__JnFEMI5HBjbjov3CP8Po,859
|
|
105
|
+
orchestrator/cli/search/__init__.py,sha256=K15_iW9ogR7xtX7qHDal4H09tmwVGnOBZWyPBLWhuzc,1274
|
|
106
|
+
orchestrator/cli/search/index_llm.py,sha256=RWPkFz5bxiznjpN1vMsSWeqcvYKB90DLL4pXQ92QJNI,2239
|
|
107
|
+
orchestrator/cli/search/resize_embedding.py,sha256=ds830T26ADOD9vZS7psRHJVF_u2xar2d4vvIH1AOlww,4216
|
|
108
|
+
orchestrator/cli/search/search_explore.py,sha256=SDn1DMN8a4roSPodIHl-KrNAvdHo5jTDUvMUFLVh1P4,8602
|
|
109
|
+
orchestrator/cli/search/speedtest.py,sha256=QkQ_YhKh7TnNRX4lKjgrmF7DyufU9teLqw4CWkm52ko,4972
|
|
109
110
|
orchestrator/config/__init__.py,sha256=GyHNfEFCGKQwRiN6rQmvSRH2iYX7npjMZn97n8XzmLU,571
|
|
110
111
|
orchestrator/config/assignee.py,sha256=9mFFe9hoi2NCkXFOKL2pU2aveBzcZhljSvqUnh55vrk,780
|
|
111
112
|
orchestrator/db/__init__.py,sha256=41_v-oeX5SMnwH2uIeBzscoST3FRXdpkEFDE5AoQR1E,3498
|
|
@@ -138,7 +139,7 @@ orchestrator/db/sorting/sorting.py,sha256=WpwImCDRKiOp4Tr54vovWpHkoJIov8SNQNPods
|
|
|
138
139
|
orchestrator/db/sorting/subscription.py,sha256=uepBMyfRFLZz5yoYK4VK3mdRBvO1Gc-6jSQXQ41fR-8,1441
|
|
139
140
|
orchestrator/db/sorting/workflow.py,sha256=6-JceMyB99M994Re58E0MX5uhlpnTW5OJCxmXopEfRU,576
|
|
140
141
|
orchestrator/devtools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
141
|
-
orchestrator/devtools/populator.py,sha256
|
|
142
|
+
orchestrator/devtools/populator.py,sha256=U7j5Gvu5mU8kvqx9jfno25aYyD5GFSk9ZQ2zYSagQOI,20399
|
|
142
143
|
orchestrator/devtools/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
143
144
|
orchestrator/devtools/scripts/migrate_20.py,sha256=8-qLiWfjYctu2kNl5MHtZvfeCdUs0YzRjepy4VYOUkc,4891
|
|
144
145
|
orchestrator/devtools/scripts/migrate_30.py,sha256=pRnJQFvmliwTLgbbDSUGyS9sCWqQcTms-g_3yfUO5vQ,3030
|
|
@@ -149,11 +150,11 @@ orchestrator/distlock/managers/__init__.py,sha256=ImIkNsrXcyE7-NgRWqEhUXUuUzda9K
|
|
|
149
150
|
orchestrator/distlock/managers/memory_distlock_manager.py,sha256=HWQafcVKBF-Cka_wukZZ1GM69AWPVOpJPje3quIebQ8,3114
|
|
150
151
|
orchestrator/distlock/managers/redis_distlock_manager.py,sha256=DXtMhC8qtxiFO6xU9qYXHZQnCLjlmGBpeyfLA0vbRP0,3369
|
|
151
152
|
orchestrator/domain/__init__.py,sha256=20DhXQPKY0g3rTgCkRlNDY58sLviToOVF8NPoex9WJc,936
|
|
152
|
-
orchestrator/domain/base.py,sha256=
|
|
153
|
+
orchestrator/domain/base.py,sha256=8_f4zmaKHIy4JtyY_QgLoF8_-llgW9-7QOfqAJgacEw,69894
|
|
153
154
|
orchestrator/domain/context_cache.py,sha256=vT1a01MBSBIaokoShK9KwjItd7abNmz7cXaF67VRZK8,2508
|
|
154
155
|
orchestrator/domain/customer_description.py,sha256=RU_pcgCIZjjFfDsY45lfV0z6ATlS1NXtB0E7eH3UcYQ,3190
|
|
155
156
|
orchestrator/domain/helpers.py,sha256=D9O2duhCAZGmm39u-9ggvU-X2JsCbIS607kF77-r8QM,2549
|
|
156
|
-
orchestrator/domain/lifecycle.py,sha256=
|
|
157
|
+
orchestrator/domain/lifecycle.py,sha256=FO31mhgtHbq5H3Qr9vzA36PxSLu_icJqcuqFex0PQnk,3823
|
|
157
158
|
orchestrator/domain/subscription_instance_transform.py,sha256=j_d49dFcSss0dl-BHS-ev2faLbE0y8hLvCfrzui6C74,4360
|
|
158
159
|
orchestrator/forms/__init__.py,sha256=bw_1238HKy_T0gvfA5oEjJFwkALzvWU4O_VJ0xE8UyU,1168
|
|
159
160
|
orchestrator/forms/validators/__init__.py,sha256=2T7w429dQhChsAbnQDeyp2BrM_iKj6-nkNrz27RZatY,1906
|
|
@@ -220,7 +221,7 @@ orchestrator/migrations/README,sha256=heMzebYwlGhnE8_4CWJ4LS74WoEZjBy-S-mIJRxAEK
|
|
|
220
221
|
orchestrator/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
221
222
|
orchestrator/migrations/alembic.ini,sha256=kMoADqhGeubU8xanILNaqm4oixLy9m4ngYtdGpZcc7I,873
|
|
222
223
|
orchestrator/migrations/env.py,sha256=M_cPoAL2axuuup5fvMy8I_WTPHEw0RbPEHkhZ3QEGoE,3740
|
|
223
|
-
orchestrator/migrations/helpers.py,sha256=
|
|
224
|
+
orchestrator/migrations/helpers.py,sha256=sgSNZzQFHGT9_nboxwp_ryP2CWQZsSqEg_0i4giIM2k,48248
|
|
224
225
|
orchestrator/migrations/script.py.mako,sha256=607Zrgp-Z-m9WGLt4wewN1QDOmHeifxcePUdADkSZyM,510
|
|
225
226
|
orchestrator/migrations/templates/alembic.ini.j2,sha256=8v7UbKvOiWEbEKQa-Au3uONKUuYx6aflulYanZX6r2I,883
|
|
226
227
|
orchestrator/migrations/templates/env.py.j2,sha256=LIt0ildZTZvNEx3imhy4GNzfFi_rPZg-8H7rGgrBOP8,2717
|
|
@@ -254,7 +255,6 @@ orchestrator/migrations/versions/schema/2025-05-08_161918133bec_add_is_task_to_w
|
|
|
254
255
|
orchestrator/migrations/versions/schema/2025-07-01_93fc5834c7e5_changed_timestamping_fields_in_process_steps.py,sha256=Oezd8b2qaI1Kyq-sZFVFmdzd4d9NjXrf6HtJGk11fy0,1914
|
|
255
256
|
orchestrator/migrations/versions/schema/2025-07-04_4b58e336d1bf_deprecating_workflow_target_in_.py,sha256=xnD6w-97R4ClS7rbmXQEXc36K3fdcXKhCy7ZZNy_FX4,742
|
|
256
257
|
orchestrator/migrations/versions/schema/2025-07-28_850dccac3b02_update_description_of_resume_workflows_.py,sha256=R6Qoga83DJ1IL0WYPu0u5u2ZvAmqGlDmUMv_KtJyOhQ,812
|
|
257
|
-
orchestrator/migrations/versions/schema/2025-08-12_52b37b5b2714_search_index_model_for_llm_integration.py,sha256=6lRbUd1hJBjG8KM4Ow_J4pk2qwlRVhTKczS7XmoW-q4,3304
|
|
258
258
|
orchestrator/schedules/__init__.py,sha256=Zy0fTOBMGIRFoh5iVFDLF9_PRAFaONYDThGK9EsysWo,981
|
|
259
259
|
orchestrator/schedules/resume_workflows.py,sha256=jRnVRWDy687pQu-gtk80ecwiLSdrvtL15tG3U2zWA6I,891
|
|
260
260
|
orchestrator/schedules/scheduler.py,sha256=nnuehZnBbtC90MsFP_Q6kqcD1ihsq08vr1ALJ6jHF_s,5833
|
|
@@ -271,49 +271,56 @@ orchestrator/schemas/process.py,sha256=UACBNt-4g4v9Y528u-gZ-Wk7YxwJHhnI4cEu5CtQm
|
|
|
271
271
|
orchestrator/schemas/product.py,sha256=MhMCh058ZuS2RJq-wSmxIPUNlhQexxXIx3DSz2OmOh4,1570
|
|
272
272
|
orchestrator/schemas/product_block.py,sha256=kCqvm6qadHpegMr9aWI_fYX-T7mS-5S-ldPxnGQZg7M,1519
|
|
273
273
|
orchestrator/schemas/resource_type.py,sha256=VDju4XywcDDLxdpbWU62RTvR9QF8x_GRrpTlN_NE8uI,1064
|
|
274
|
-
orchestrator/schemas/search.py,sha256=
|
|
274
|
+
orchestrator/schemas/search.py,sha256=Q89GAPrmHf2DnwTJiPMYog1xAIC3QMJ3IItFZdVVFXg,3417
|
|
275
275
|
orchestrator/schemas/subscription.py,sha256=-jXyHZIed9Xlia18ksSDyenblNN6Q2yM2FlGELyJ458,3423
|
|
276
276
|
orchestrator/schemas/subscription_descriptions.py,sha256=Ft_jw1U0bf9Z0U8O4OWfLlcl0mXCVT_qYVagBP3GbIQ,1262
|
|
277
|
-
orchestrator/schemas/workflow.py,sha256=
|
|
277
|
+
orchestrator/schemas/workflow.py,sha256=StVoRGyNT2iIeq3z8BIlTPt0bcafzbeYxXRrCucR6LU,2146
|
|
278
278
|
orchestrator/search/__init__.py,sha256=2uhTQexKx-cdBP1retV3CYSNCs02s8WL3fhGvupRGZk,571
|
|
279
|
-
orchestrator/search/
|
|
280
|
-
orchestrator/search/agent/
|
|
281
|
-
orchestrator/search/agent/
|
|
282
|
-
orchestrator/search/agent/
|
|
283
|
-
orchestrator/search/agent/
|
|
284
|
-
orchestrator/search/
|
|
285
|
-
orchestrator/search/core/
|
|
286
|
-
orchestrator/search/core/
|
|
287
|
-
orchestrator/search/core/
|
|
288
|
-
orchestrator/search/core/
|
|
279
|
+
orchestrator/search/llm_migration.py,sha256=BklTa8xg85b26j4dadRji_tjaIWU3L0a9B3buwuld0E,4475
|
|
280
|
+
orchestrator/search/agent/__init__.py,sha256=_b7Q43peWSi2bb3-69CThAqt_sxgoaMbHeq6erLGR00,752
|
|
281
|
+
orchestrator/search/agent/agent.py,sha256=zhDyXwRf118vH96CmKRbo5O8GKl_mnLJTDNfWgvsKeE,2450
|
|
282
|
+
orchestrator/search/agent/prompts.py,sha256=-1VLYwPecC6xroKQTc9AE9MTtg_ffAUfHUi8ZATyUMg,4556
|
|
283
|
+
orchestrator/search/agent/state.py,sha256=1WHYol5UlYpq2QZz-BVsBFYrJZms5P18ohN2Ur8P2F4,783
|
|
284
|
+
orchestrator/search/agent/tools.py,sha256=4kvY0tG7i5-w8C-ZMuSabxb_sJmd_TpFl3F4xeGgzok,9513
|
|
285
|
+
orchestrator/search/core/__init__.py,sha256=q5G0z3nKjIHKFs1PkEG3nvTUy3Wp4kCyBtCbqUITj3A,579
|
|
286
|
+
orchestrator/search/core/embedding.py,sha256=ESeI5Vcobb__CRRZE_RP-m4eAz8JUP8S16aGLJh4uAY,2751
|
|
287
|
+
orchestrator/search/core/exceptions.py,sha256=qp7ZdyDvN5b2HD5_oZXMgoLJgy79krpClszKh3KPuAw,1029
|
|
288
|
+
orchestrator/search/core/types.py,sha256=Gaf77cKUqnE8vJNCpk-g3h2U5912axhIgZZnF_0_O48,8831
|
|
289
|
+
orchestrator/search/core/validators.py,sha256=zktY5A3RTBmfdARJoxoz9rnnyTZj7L30Kbmh9UTQz2o,1204
|
|
289
290
|
orchestrator/search/docs/index.md,sha256=zKzE2fbtHDfYTKaHg628wAsqCTOJ5yFUWV0ucFH3pAg,863
|
|
290
|
-
orchestrator/search/docs/running_local_text_embedding_inference.md,sha256=
|
|
291
|
-
orchestrator/search/filters/__init__.py,sha256=
|
|
292
|
-
orchestrator/search/filters/base.py,sha256=
|
|
293
|
-
orchestrator/search/filters/date_filters.py,sha256=
|
|
294
|
-
orchestrator/search/filters/definitions.py,sha256=
|
|
295
|
-
orchestrator/search/filters/ltree_filters.py,sha256=
|
|
296
|
-
orchestrator/search/filters/numeric_filter.py,sha256=
|
|
297
|
-
orchestrator/search/indexing/__init__.py,sha256=
|
|
298
|
-
orchestrator/search/indexing/indexer.py,sha256=
|
|
299
|
-
orchestrator/search/indexing/registry.py,sha256=
|
|
300
|
-
orchestrator/search/indexing/tasks.py,sha256=
|
|
301
|
-
orchestrator/search/indexing/traverse.py,sha256=
|
|
302
|
-
orchestrator/search/retrieval/__init__.py,sha256=
|
|
303
|
-
orchestrator/search/retrieval/builder.py,sha256=
|
|
304
|
-
orchestrator/search/retrieval/engine.py,sha256=
|
|
305
|
-
orchestrator/search/retrieval/
|
|
306
|
-
orchestrator/search/retrieval/
|
|
307
|
-
orchestrator/search/retrieval/utils.py,sha256=
|
|
308
|
-
orchestrator/search/retrieval/validation.py,sha256=
|
|
309
|
-
orchestrator/search/
|
|
310
|
-
orchestrator/search/
|
|
311
|
-
orchestrator/search/
|
|
291
|
+
orchestrator/search/docs/running_local_text_embedding_inference.md,sha256=OR0NVZMb8DqpgXYxlwDUrJwfRk0bYOk1-LkDMqsV6bU,1327
|
|
292
|
+
orchestrator/search/filters/__init__.py,sha256=Yutr21lv8RtZf5OKaBozlYufgmmV2QHuzAPPjvUamLE,1222
|
|
293
|
+
orchestrator/search/filters/base.py,sha256=lUr0eW0zi4oIMVUHuRD3GAQ9xEbHiFUl_EfAI6ABPVo,12456
|
|
294
|
+
orchestrator/search/filters/date_filters.py,sha256=0a6nbUTK647_Qf4XXZMLDvBLVjF5Qqy9eJ-9SrTGaGg,3040
|
|
295
|
+
orchestrator/search/filters/definitions.py,sha256=wl2HiXlTWXQN4JmuSq2SBuhTMvyIeonTtUZoCrJAK6M,4093
|
|
296
|
+
orchestrator/search/filters/ltree_filters.py,sha256=1OOmM5K90NsGBQmTqyoDlphdAOGd9r2rmz1rNItm8yk,2341
|
|
297
|
+
orchestrator/search/filters/numeric_filter.py,sha256=lcOAOpPNTwA0SW8QPiMOs1oKTYZLwGDQSrwFydXgMUU,2774
|
|
298
|
+
orchestrator/search/indexing/__init__.py,sha256=Or78bizNPiuNOgwLGJQ0mspCF1G_gSe5C9Ap7qi0MZk,662
|
|
299
|
+
orchestrator/search/indexing/indexer.py,sha256=puYOL7IXyJi7A7huT1jQ_2G3YZimeivkQJF2BZR4apQ,14866
|
|
300
|
+
orchestrator/search/indexing/registry.py,sha256=zEOUmQDmZHJ4xzT63VSJzuuHWVTnuBSvhZg4l6lFTUU,3048
|
|
301
|
+
orchestrator/search/indexing/tasks.py,sha256=vmS1nnprPF74yitS0xGpP1dhSDis2nekMYF0v_jduDE,2478
|
|
302
|
+
orchestrator/search/indexing/traverse.py,sha256=NKkKSri-if1d1vwzTQlDCF0hvBdB2IbWWuMdPrQ78Jg,14330
|
|
303
|
+
orchestrator/search/retrieval/__init__.py,sha256=JP5WGYhmjd2RKXEExorvU6koMBLsTLdlDGCR_r1t8ug,645
|
|
304
|
+
orchestrator/search/retrieval/builder.py,sha256=70cEvbsWI1dj-4H-LJq4o6Q71e3WERd-V6bzlZhGtHw,4607
|
|
305
|
+
orchestrator/search/retrieval/engine.py,sha256=jHxKuULcsqkdTyh9NEzBCsOnBaZzlbvcGseJoJec1yw,6147
|
|
306
|
+
orchestrator/search/retrieval/exceptions.py,sha256=oHoLGLLxxmVcV-W36uK0V-Pn4vf_iw6hajpQbap3NqI,3588
|
|
307
|
+
orchestrator/search/retrieval/pagination.py,sha256=bRcXtWxxWvOhCQyhjwfJ7S6q_Dn3pYm8TCg7ofjVP44,3353
|
|
308
|
+
orchestrator/search/retrieval/utils.py,sha256=svhF9YfMClq2MVPArS3ir3pg5_e_bremquv_l6tTsOQ,4597
|
|
309
|
+
orchestrator/search/retrieval/validation.py,sha256=AjhttVJWlZDaT1_pUL_LaypQV11U21JpTCE4OwnpoqA,5849
|
|
310
|
+
orchestrator/search/retrieval/retrievers/__init__.py,sha256=1bGmbae0GYRM6e1vxf0ww79NaTSmfOMe9S0pPVmh3CM,897
|
|
311
|
+
orchestrator/search/retrieval/retrievers/base.py,sha256=Sp8h992lw_7vigE4s2QB0gqtqMACEOA8nDnhuXXHtxA,4570
|
|
312
|
+
orchestrator/search/retrieval/retrievers/fuzzy.py,sha256=U_WNAaxSUVUlVrmFrYFt-s0ebw9ift1Z2zBHG8TSPLE,3839
|
|
313
|
+
orchestrator/search/retrieval/retrievers/hybrid.py,sha256=YriY3gF6E7pQUumqdSDSyFJvYQbZZ6vSsMUhM5JHGpg,11102
|
|
314
|
+
orchestrator/search/retrieval/retrievers/semantic.py,sha256=oWNJ9DuqM16BXYXUwmRmkfDmp_2vQH2PySNMk8TcvVk,3961
|
|
315
|
+
orchestrator/search/retrieval/retrievers/structured.py,sha256=OHsHEjjLg1QwtEytQNeyWcCBQd8rJxHVf59HxvA9_vc,1452
|
|
316
|
+
orchestrator/search/schemas/__init__.py,sha256=q5G0z3nKjIHKFs1PkEG3nvTUy3Wp4kCyBtCbqUITj3A,579
|
|
317
|
+
orchestrator/search/schemas/parameters.py,sha256=aglbVvvM_gT-zTpVQh05wIUnfn2mD1JKIiWH_VaTqaM,4690
|
|
318
|
+
orchestrator/search/schemas/results.py,sha256=EsbYS8XJ8r5JoN17N4z1lHIShgg7RW973mi6yILcHOI,1987
|
|
312
319
|
orchestrator/services/__init__.py,sha256=GyHNfEFCGKQwRiN6rQmvSRH2iYX7npjMZn97n8XzmLU,571
|
|
313
320
|
orchestrator/services/fixed_inputs.py,sha256=kyz7s2HLzyDulvcq-ZqefTw1om86COvyvTjz0_5CmgI,876
|
|
314
321
|
orchestrator/services/input_state.py,sha256=6BZOpb3cHpO18K-XG-3QUIV9pIM25_ufdODrp5CmXG4,2390
|
|
315
322
|
orchestrator/services/process_broadcast_thread.py,sha256=D44YbjF8mRqGuznkRUV4SoRn1J0lfy_x1H508GnSVlU,4649
|
|
316
|
-
orchestrator/services/processes.py,sha256=
|
|
323
|
+
orchestrator/services/processes.py,sha256=LpJbq13UJOrNUKorwYBTV4-MJj-XLXFv6LBk7iyQgl8,30622
|
|
317
324
|
orchestrator/services/products.py,sha256=BP4KyE8zO-8z7Trrs5T6zKBOw53S9BfBJnHWI3p6u5Y,1943
|
|
318
325
|
orchestrator/services/resource_types.py,sha256=_QBy_JOW_X3aSTqH0CuLrq4zBJL0p7Q-UDJUcuK2_qc,884
|
|
319
326
|
orchestrator/services/settings.py,sha256=HEWfFulgoEDwgfxGEO__QTr5fDiwNBEj1UhAeTAdbLQ,3159
|
|
@@ -344,7 +351,7 @@ orchestrator/utils/json.py,sha256=7386sdqkrKYyy4sbn5NscwctH_v1hLyw5172P__rU3g,83
|
|
|
344
351
|
orchestrator/utils/redis.py,sha256=BjUNmrKx8YVyJIucl2mhXubK6WV-49OnAU6rPMOZpM0,4469
|
|
345
352
|
orchestrator/utils/redis_client.py,sha256=9rhsvedjK_CyClAjUicQyge0mVIViATqKFGZyjBY3XA,1384
|
|
346
353
|
orchestrator/utils/search_query.py,sha256=ji5LHtrzohGz6b1IG41cnPdpWXzLEzz4SGWgHly_yfU,16205
|
|
347
|
-
orchestrator/utils/state.py,sha256=
|
|
354
|
+
orchestrator/utils/state.py,sha256=ELH08cxvpmpnJg_ae0sMi9m_QX6SqHxNzOFaJgyW9gM,14344
|
|
348
355
|
orchestrator/utils/strings.py,sha256=N0gWjmQaMjE9_99VtRvRaU8IBLTKMgBKSXcTZ9TpWAg,1077
|
|
349
356
|
orchestrator/utils/validate_data_version.py,sha256=3Eioy2wE2EWKSgkyMKcEKrkCAfUIAq-eb73iRcpgppw,184
|
|
350
357
|
orchestrator/websocket/__init__.py,sha256=V79jskk1z3uPIYgu0Gt6JLzuqr7NGfNeAZ-hbBqoUv4,5745
|
|
@@ -354,15 +361,15 @@ orchestrator/websocket/managers/memory_websocket_manager.py,sha256=lF5EEx1iFMCGE
|
|
|
354
361
|
orchestrator/workflows/__init__.py,sha256=NzIGGI-8SNAwCk2YqH6sHhEWbgAY457ntDwjO15N8v4,4131
|
|
355
362
|
orchestrator/workflows/modify_note.py,sha256=eXt5KQvrkOXf-3YEXCn2XbBLP9N-n1pUYRW2t8Odupo,2150
|
|
356
363
|
orchestrator/workflows/removed_workflow.py,sha256=V0Da5TEdfLdZZKD38ig-MTp3_IuE7VGqzHHzvPYQmLI,909
|
|
357
|
-
orchestrator/workflows/steps.py,sha256=
|
|
364
|
+
orchestrator/workflows/steps.py,sha256=VVLRK9_7KzrBlnK7L8eSmRMNVOO7VJBh5OSjHQHM9fU,7019
|
|
358
365
|
orchestrator/workflows/utils.py,sha256=VUCDoIl5XAKtIeAJpVpyW2pCIg3PoVWfwGn28BYlYhA,15424
|
|
359
366
|
orchestrator/workflows/tasks/__init__.py,sha256=GyHNfEFCGKQwRiN6rQmvSRH2iYX7npjMZn97n8XzmLU,571
|
|
360
367
|
orchestrator/workflows/tasks/cleanup_tasks_log.py,sha256=BfWYbPXhnLAHUJ0mlODDnjZnQQAvKCZJDVTwbwOWI04,1624
|
|
361
368
|
orchestrator/workflows/tasks/resume_workflows.py,sha256=T3iobSJjVgiupe0rClD34kUZ7KF4pL5yK2AVeRLZog8,4313
|
|
362
|
-
orchestrator/workflows/tasks/validate_product_type.py,sha256=
|
|
369
|
+
orchestrator/workflows/tasks/validate_product_type.py,sha256=lo2TX_MZOfcOmYFjLyD82FrJ5AAN3HOsE6BhDVFuy9Q,3210
|
|
363
370
|
orchestrator/workflows/tasks/validate_products.py,sha256=GZJBoFF-WMphS7ghMs2-gqvV2iL1F0POhk0uSNt93n0,8510
|
|
364
371
|
orchestrator/workflows/translations/en-GB.json,sha256=ST53HxkphFLTMjFHonykDBOZ7-P_KxksktZU3GbxLt0,846
|
|
365
|
-
orchestrator_core-4.5.
|
|
366
|
-
orchestrator_core-4.5.
|
|
367
|
-
orchestrator_core-4.5.
|
|
368
|
-
orchestrator_core-4.5.
|
|
372
|
+
orchestrator_core-4.5.3.dist-info/licenses/LICENSE,sha256=b-aA5OZQuuBATmLKo_mln8CQrDPPhg3ghLzjPjLn4Tg,11409
|
|
373
|
+
orchestrator_core-4.5.3.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
|
|
374
|
+
orchestrator_core-4.5.3.dist-info/METADATA,sha256=4VPK7eDOSL9d-GIlwyIlqIAtoPpJrniwNlXGgJ6qHl4,6250
|
|
375
|
+
orchestrator_core-4.5.3.dist-info/RECORD,,
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
"""Search index model for llm integration.
|
|
2
|
-
|
|
3
|
-
Revision ID: 52b37b5b2714
|
|
4
|
-
Revises: 850dccac3b02
|
|
5
|
-
Create Date: 2025-08-12 22:34:26.694750
|
|
6
|
-
|
|
7
|
-
"""
|
|
8
|
-
|
|
9
|
-
import sqlalchemy as sa
|
|
10
|
-
from alembic import op
|
|
11
|
-
from pgvector.sqlalchemy import Vector
|
|
12
|
-
from sqlalchemy.dialects import postgresql
|
|
13
|
-
from sqlalchemy_utils import LtreeType
|
|
14
|
-
|
|
15
|
-
from orchestrator.search.core.types import FieldType
|
|
16
|
-
|
|
17
|
-
# revision identifiers, used by Alembic.
|
|
18
|
-
revision = "52b37b5b2714"
|
|
19
|
-
down_revision = "850dccac3b02"
|
|
20
|
-
branch_labels = None
|
|
21
|
-
depends_on = None
|
|
22
|
-
|
|
23
|
-
TABLE = "ai_search_index"
|
|
24
|
-
IDX_EMBED_HNSW = "ix_flat_embed_hnsw"
|
|
25
|
-
IDX_PATH_GIST = "ix_flat_path_gist"
|
|
26
|
-
IDX_PATH_BTREE = "ix_flat_path_btree"
|
|
27
|
-
IDX_VALUE_TRGM = "ix_flat_value_trgm"
|
|
28
|
-
IDX_CONTENT_HASH = "idx_ai_search_index_content_hash"
|
|
29
|
-
|
|
30
|
-
TARGET_DIM = 1536
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
def upgrade() -> None:
|
|
34
|
-
# Create PostgreSQL extensions
|
|
35
|
-
op.execute("CREATE EXTENSION IF NOT EXISTS ltree;")
|
|
36
|
-
op.execute("CREATE EXTENSION IF NOT EXISTS unaccent;")
|
|
37
|
-
op.execute("CREATE EXTENSION IF NOT EXISTS pg_trgm;")
|
|
38
|
-
op.execute("CREATE EXTENSION IF NOT EXISTS vector;")
|
|
39
|
-
|
|
40
|
-
# Create the ai_search_index table
|
|
41
|
-
op.create_table(
|
|
42
|
-
TABLE,
|
|
43
|
-
sa.Column("entity_type", sa.Text, nullable=False),
|
|
44
|
-
sa.Column("entity_id", postgresql.UUID, nullable=False),
|
|
45
|
-
sa.Column("path", LtreeType, nullable=False),
|
|
46
|
-
sa.Column("value", sa.Text, nullable=False),
|
|
47
|
-
sa.Column("embedding", Vector(TARGET_DIM), nullable=True),
|
|
48
|
-
sa.Column("content_hash", sa.String(64), nullable=False),
|
|
49
|
-
sa.PrimaryKeyConstraint("entity_id", "path", name="pk_ai_search_index"),
|
|
50
|
-
)
|
|
51
|
-
|
|
52
|
-
field_type_enum = sa.Enum(*[ft.value for ft in FieldType], name="field_type")
|
|
53
|
-
field_type_enum.create(op.get_bind(), checkfirst=True)
|
|
54
|
-
op.add_column(
|
|
55
|
-
TABLE,
|
|
56
|
-
sa.Column("value_type", field_type_enum, nullable=False, server_default=FieldType.STRING.value),
|
|
57
|
-
)
|
|
58
|
-
op.alter_column(TABLE, "value_type", server_default=None)
|
|
59
|
-
|
|
60
|
-
op.create_index(op.f("ix_ai_search_index_entity_id"), TABLE, ["entity_id"], unique=False)
|
|
61
|
-
op.create_index(IDX_CONTENT_HASH, TABLE, ["content_hash"])
|
|
62
|
-
|
|
63
|
-
op.create_index(
|
|
64
|
-
IDX_PATH_GIST,
|
|
65
|
-
TABLE,
|
|
66
|
-
["path"],
|
|
67
|
-
postgresql_using="GIST",
|
|
68
|
-
postgresql_ops={"path": "gist_ltree_ops"},
|
|
69
|
-
)
|
|
70
|
-
op.create_index(IDX_PATH_BTREE, TABLE, ["path"])
|
|
71
|
-
op.create_index(IDX_VALUE_TRGM, TABLE, ["value"], postgresql_using="GIN", postgresql_ops={"value": "gin_trgm_ops"})
|
|
72
|
-
|
|
73
|
-
op.create_index(
|
|
74
|
-
IDX_EMBED_HNSW,
|
|
75
|
-
TABLE,
|
|
76
|
-
["embedding"],
|
|
77
|
-
postgresql_using="HNSW",
|
|
78
|
-
postgresql_with={"m": 16, "ef_construction": 64},
|
|
79
|
-
postgresql_ops={"embedding": "vector_l2_ops"},
|
|
80
|
-
)
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
def downgrade() -> None:
|
|
84
|
-
# Drop all indexes
|
|
85
|
-
op.drop_index(IDX_EMBED_HNSW, table_name=TABLE, if_exists=True)
|
|
86
|
-
op.drop_index(IDX_VALUE_TRGM, table_name=TABLE, if_exists=True)
|
|
87
|
-
op.drop_index(IDX_PATH_BTREE, table_name=TABLE, if_exists=True)
|
|
88
|
-
op.drop_index(IDX_PATH_GIST, table_name=TABLE, if_exists=True)
|
|
89
|
-
op.drop_index(IDX_CONTENT_HASH, table_name=TABLE, if_exists=True)
|
|
90
|
-
op.drop_index(op.f("ix_ai_search_index_entity_id"), table_name=TABLE, if_exists=True)
|
|
91
|
-
|
|
92
|
-
# Drop table and enum
|
|
93
|
-
op.drop_table(TABLE, if_exists=True)
|
|
94
|
-
field_type_enum = sa.Enum(name="field_type")
|
|
95
|
-
field_type_enum.drop(op.get_bind(), checkfirst=True)
|