julee 0.1.2__py3-none-any.whl → 0.1.4__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.
Files changed (158) hide show
  1. julee/api/app.py +9 -8
  2. julee/api/dependencies.py +15 -15
  3. julee/api/requests.py +10 -9
  4. julee/api/responses.py +2 -1
  5. julee/api/routers/__init__.py +5 -5
  6. julee/api/routers/assembly_specifications.py +5 -4
  7. julee/api/routers/documents.py +1 -1
  8. julee/api/routers/knowledge_service_configs.py +4 -3
  9. julee/api/routers/knowledge_service_queries.py +7 -6
  10. julee/api/routers/system.py +4 -3
  11. julee/api/routers/workflows.py +4 -5
  12. julee/api/services/system_initialization.py +6 -6
  13. julee/api/tests/routers/test_assembly_specifications.py +4 -3
  14. julee/api/tests/routers/test_documents.py +11 -10
  15. julee/api/tests/routers/test_knowledge_service_configs.py +7 -6
  16. julee/api/tests/routers/test_knowledge_service_queries.py +4 -3
  17. julee/api/tests/routers/test_system.py +5 -4
  18. julee/api/tests/routers/test_workflows.py +5 -4
  19. julee/api/tests/test_app.py +5 -4
  20. julee/api/tests/test_dependencies.py +3 -2
  21. julee/api/tests/test_requests.py +2 -1
  22. julee/contrib/__init__.py +15 -0
  23. julee/contrib/polling/__init__.py +47 -0
  24. julee/contrib/polling/domain/__init__.py +17 -0
  25. julee/contrib/polling/domain/models/__init__.py +13 -0
  26. julee/contrib/polling/domain/models/polling_config.py +39 -0
  27. julee/contrib/polling/domain/services/__init__.py +11 -0
  28. julee/contrib/polling/domain/services/poller.py +39 -0
  29. julee/contrib/polling/infrastructure/__init__.py +15 -0
  30. julee/contrib/polling/infrastructure/services/__init__.py +12 -0
  31. julee/contrib/polling/infrastructure/services/polling/__init__.py +12 -0
  32. julee/contrib/polling/infrastructure/services/polling/http/__init__.py +12 -0
  33. julee/contrib/polling/infrastructure/services/polling/http/http_poller_service.py +80 -0
  34. julee/contrib/polling/infrastructure/temporal/__init__.py +20 -0
  35. julee/contrib/polling/infrastructure/temporal/activities.py +42 -0
  36. julee/contrib/polling/infrastructure/temporal/activity_names.py +20 -0
  37. julee/contrib/polling/infrastructure/temporal/proxies.py +45 -0
  38. julee/contrib/polling/tests/__init__.py +6 -0
  39. julee/contrib/polling/tests/unit/__init__.py +6 -0
  40. julee/contrib/polling/tests/unit/infrastructure/__init__.py +7 -0
  41. julee/contrib/polling/tests/unit/infrastructure/services/__init__.py +6 -0
  42. julee/contrib/polling/tests/unit/infrastructure/services/polling/__init__.py +6 -0
  43. julee/contrib/polling/tests/unit/infrastructure/services/polling/http/__init__.py +7 -0
  44. julee/contrib/polling/tests/unit/infrastructure/services/polling/http/test_http_poller_service.py +163 -0
  45. julee/docs/__init__.py +5 -0
  46. julee/docs/sphinx_hcd/__init__.py +76 -0
  47. julee/docs/sphinx_hcd/accelerators.py +1175 -0
  48. julee/docs/sphinx_hcd/apps.py +518 -0
  49. julee/docs/sphinx_hcd/config.py +148 -0
  50. julee/docs/sphinx_hcd/epics.py +453 -0
  51. julee/docs/sphinx_hcd/integrations.py +310 -0
  52. julee/docs/sphinx_hcd/journeys.py +797 -0
  53. julee/docs/sphinx_hcd/personas.py +457 -0
  54. julee/docs/sphinx_hcd/stories.py +960 -0
  55. julee/docs/sphinx_hcd/utils.py +185 -0
  56. julee/domain/models/__init__.py +5 -6
  57. julee/domain/models/assembly/assembly.py +7 -7
  58. julee/domain/models/assembly/tests/factories.py +2 -1
  59. julee/domain/models/assembly/tests/test_assembly.py +16 -13
  60. julee/domain/models/assembly_specification/assembly_specification.py +11 -10
  61. julee/domain/models/assembly_specification/knowledge_service_query.py +7 -6
  62. julee/domain/models/assembly_specification/tests/factories.py +2 -1
  63. julee/domain/models/assembly_specification/tests/test_assembly_specification.py +9 -6
  64. julee/domain/models/assembly_specification/tests/test_knowledge_service_query.py +3 -1
  65. julee/domain/models/custom_fields/content_stream.py +3 -2
  66. julee/domain/models/custom_fields/tests/test_custom_fields.py +2 -1
  67. julee/domain/models/document/document.py +23 -30
  68. julee/domain/models/document/tests/factories.py +3 -2
  69. julee/domain/models/document/tests/test_document.py +20 -37
  70. julee/domain/models/knowledge_service_config/knowledge_service_config.py +4 -4
  71. julee/domain/models/policy/__init__.py +4 -4
  72. julee/domain/models/policy/document_policy_validation.py +17 -17
  73. julee/domain/models/policy/policy.py +10 -10
  74. julee/domain/models/policy/tests/factories.py +2 -1
  75. julee/domain/models/policy/tests/test_document_policy_validation.py +3 -1
  76. julee/domain/models/policy/tests/test_policy.py +2 -1
  77. julee/domain/repositories/__init__.py +3 -3
  78. julee/domain/repositories/assembly.py +3 -1
  79. julee/domain/repositories/assembly_specification.py +2 -0
  80. julee/domain/repositories/base.py +5 -4
  81. julee/domain/repositories/document.py +3 -1
  82. julee/domain/repositories/document_policy_validation.py +3 -1
  83. julee/domain/repositories/knowledge_service_config.py +2 -0
  84. julee/domain/repositories/knowledge_service_query.py +1 -0
  85. julee/domain/repositories/policy.py +3 -1
  86. julee/domain/use_cases/decorators.py +3 -2
  87. julee/domain/use_cases/extract_assemble_data.py +14 -13
  88. julee/domain/use_cases/initialize_system_data.py +88 -34
  89. julee/domain/use_cases/tests/test_extract_assemble_data.py +10 -10
  90. julee/domain/use_cases/tests/test_initialize_system_data.py +2 -2
  91. julee/domain/use_cases/tests/test_validate_document.py +11 -11
  92. julee/domain/use_cases/validate_document.py +14 -14
  93. julee/fixtures/documents.yaml +4 -43
  94. julee/fixtures/knowledge_service_queries.yaml +9 -0
  95. julee/maintenance/__init__.py +1 -0
  96. julee/maintenance/release.py +243 -0
  97. julee/repositories/memory/assembly.py +6 -5
  98. julee/repositories/memory/assembly_specification.py +8 -9
  99. julee/repositories/memory/base.py +12 -11
  100. julee/repositories/memory/document.py +27 -20
  101. julee/repositories/memory/document_policy_validation.py +7 -6
  102. julee/repositories/memory/knowledge_service_config.py +8 -7
  103. julee/repositories/memory/knowledge_service_query.py +8 -7
  104. julee/repositories/memory/policy.py +6 -5
  105. julee/repositories/memory/tests/test_document.py +24 -22
  106. julee/repositories/memory/tests/test_document_policy_validation.py +2 -1
  107. julee/repositories/memory/tests/test_policy.py +2 -1
  108. julee/repositories/minio/assembly.py +4 -4
  109. julee/repositories/minio/assembly_specification.py +6 -8
  110. julee/repositories/minio/client.py +22 -25
  111. julee/repositories/minio/document.py +36 -33
  112. julee/repositories/minio/document_policy_validation.py +5 -5
  113. julee/repositories/minio/knowledge_service_config.py +6 -6
  114. julee/repositories/minio/knowledge_service_query.py +6 -9
  115. julee/repositories/minio/policy.py +4 -4
  116. julee/repositories/minio/tests/fake_client.py +11 -9
  117. julee/repositories/minio/tests/test_assembly.py +3 -1
  118. julee/repositories/minio/tests/test_assembly_specification.py +2 -1
  119. julee/repositories/minio/tests/test_client_protocol.py +5 -5
  120. julee/repositories/minio/tests/test_document.py +23 -22
  121. julee/repositories/minio/tests/test_document_policy_validation.py +3 -1
  122. julee/repositories/minio/tests/test_knowledge_service_config.py +4 -2
  123. julee/repositories/minio/tests/test_knowledge_service_query.py +3 -2
  124. julee/repositories/minio/tests/test_policy.py +3 -1
  125. julee/repositories/temporal/activities.py +5 -5
  126. julee/repositories/temporal/proxies.py +5 -5
  127. julee/services/knowledge_service/__init__.py +1 -2
  128. julee/services/knowledge_service/anthropic/knowledge_service.py +8 -7
  129. julee/services/knowledge_service/anthropic/tests/test_knowledge_service.py +11 -10
  130. julee/services/knowledge_service/factory.py +8 -8
  131. julee/services/knowledge_service/knowledge_service.py +12 -14
  132. julee/services/knowledge_service/memory/knowledge_service.py +13 -12
  133. julee/services/knowledge_service/memory/test_knowledge_service.py +10 -7
  134. julee/services/knowledge_service/test_factory.py +11 -10
  135. julee/services/temporal/activities.py +10 -10
  136. julee/services/temporal/proxies.py +2 -2
  137. julee/util/domain.py +6 -6
  138. julee/util/repos/minio/file_storage.py +8 -9
  139. julee/util/repos/temporal/client_proxies/file_storage.py +3 -4
  140. julee/util/repos/temporal/data_converter.py +6 -6
  141. julee/util/repos/temporal/minio_file_storage.py +1 -1
  142. julee/util/repos/temporal/proxies/file_storage.py +2 -3
  143. julee/util/repositories.py +4 -3
  144. julee/util/temporal/decorators.py +20 -18
  145. julee/util/tests/test_decorators.py +13 -15
  146. julee/util/validation/repository.py +3 -3
  147. julee/util/validation/type_guards.py +12 -11
  148. julee/worker.py +9 -8
  149. julee/workflows/__init__.py +2 -2
  150. julee/workflows/extract_assemble.py +2 -1
  151. julee/workflows/validate_document.py +3 -2
  152. {julee-0.1.2.dist-info → julee-0.1.4.dist-info}/METADATA +3 -3
  153. julee-0.1.4.dist-info/RECORD +196 -0
  154. julee/fixtures/assembly_specifications.yaml +0 -70
  155. julee-0.1.2.dist-info/RECORD +0 -161
  156. {julee-0.1.2.dist-info → julee-0.1.4.dist-info}/WHEEL +0 -0
  157. {julee-0.1.2.dist-info → julee-0.1.4.dist-info}/licenses/LICENSE +0 -0
  158. {julee-0.1.2.dist-info → julee-0.1.4.dist-info}/top_level.txt +0 -0
@@ -10,8 +10,6 @@ import asyncio
10
10
  import inspect
11
11
  from typing import (
12
12
  Any,
13
- List,
14
- Optional,
15
13
  Protocol,
16
14
  TypeVar,
17
15
  get_args,
@@ -62,7 +60,7 @@ class MockRepositoryProtocol(MockBaseRepositoryProtocol, Protocol):
62
60
  """Mock payment processing method."""
63
61
  ...
64
62
 
65
- async def get_payment(self, payment_id: str) -> Optional[dict]:
63
+ async def get_payment(self, payment_id: str) -> dict | None:
66
64
  """Mock get payment method."""
67
65
  ...
68
66
 
@@ -98,7 +96,7 @@ class MockRepository(MockRepositoryProtocol):
98
96
  """Mock payment processing method."""
99
97
  return {"status": "success", "order_id": order_id, "amount": amount}
100
98
 
101
- async def get_payment(self, payment_id: str) -> Optional[dict]:
99
+ async def get_payment(self, payment_id: str) -> dict | None:
102
100
  """Mock get payment method."""
103
101
  if payment_id == "not_found":
104
102
  return None
@@ -239,7 +237,7 @@ def test_activity_names_with_different_prefixes() -> None:
239
237
  captured_activity_names = []
240
238
  original_activity_defn = activity.defn
241
239
 
242
- def mock_activity_defn(name: Optional[str] = None, **kwargs: Any) -> Any:
240
+ def mock_activity_defn(name: str | None = None, **kwargs: Any) -> Any:
243
241
  """Mock activity.defn to capture the activity names being created."""
244
242
  if name:
245
243
  captured_activity_names.append(name)
@@ -317,7 +315,7 @@ def test_decorator_handles_inheritance_correctly() -> None:
317
315
  "amount": amount,
318
316
  }
319
317
 
320
- async def get_payment(self, payment_id: str) -> Optional[dict]:
318
+ async def get_payment(self, payment_id: str) -> dict | None:
321
319
  if payment_id == "not_found":
322
320
  return None
323
321
  return {"payment_id": payment_id, "status": "completed"}
@@ -467,7 +465,7 @@ class MockDocumentRepository(BaseRepository[MockDocument], Protocol):
467
465
  class NonGenericRepository(Protocol):
468
466
  """Repository that doesn't follow BaseRepository[T] pattern."""
469
467
 
470
- async def get(self, id: str) -> Optional[MockDocument]: ...
468
+ async def get(self, id: str) -> MockDocument | None: ...
471
469
 
472
470
 
473
471
  class TestTypeExtraction:
@@ -521,7 +519,7 @@ class TestTypeSubstitution:
521
519
 
522
520
  def test_substitutes_optional_typevar(self) -> None:
523
521
  """Test Optional[TypeVar] substitution."""
524
- optional_t = Optional[T]
522
+ optional_t = T | None
525
523
  result = _substitute_typevar_with_concrete(
526
524
  optional_t, MockAssemblySpecification
527
525
  )
@@ -535,7 +533,7 @@ class TestTypeSubstitution:
535
533
 
536
534
  def test_substitutes_nested_generics(self) -> None:
537
535
  """Test substitution in nested generic types."""
538
- nested_generic = List[Optional[T]]
536
+ nested_generic = list[T | None]
539
537
  result = _substitute_typevar_with_concrete(nested_generic, MockDocument)
540
538
 
541
539
  # Should be List[Optional[MockDocument]]
@@ -621,20 +619,20 @@ class TestPydanticValidationDetection:
621
619
 
622
620
  def test_detects_optional_pydantic_types(self) -> None:
623
621
  """Test detection of Optional[PydanticModel] types."""
624
- assert _needs_pydantic_validation(Optional[MockAssemblySpecification])
625
- assert _needs_pydantic_validation(Optional[MockDocument])
622
+ assert _needs_pydantic_validation(MockAssemblySpecification | None)
623
+ assert _needs_pydantic_validation(MockDocument | None)
626
624
 
627
625
  def test_rejects_non_pydantic_types(self) -> None:
628
626
  """Test that non-Pydantic types are not flagged for validation."""
629
627
  assert not _needs_pydantic_validation(str)
630
628
  assert not _needs_pydantic_validation(int)
631
629
  assert not _needs_pydantic_validation(dict)
632
- assert not _needs_pydantic_validation(Optional[str])
630
+ assert not _needs_pydantic_validation(str | None)
633
631
 
634
632
  def test_rejects_typevar_types(self) -> None:
635
633
  """Test TypeVar types aren't flagged for validation (the bug)."""
636
634
  assert not _needs_pydantic_validation(T)
637
- assert not _needs_pydantic_validation(Optional[T])
635
+ assert not _needs_pydantic_validation(T | None)
638
636
 
639
637
  def test_handles_none_and_empty(self) -> None:
640
638
  """Test handling of None and Signature.empty."""
@@ -733,7 +731,7 @@ class TestEndToEndTypeSubstitution:
733
731
  def test_type_substitution_enables_pydantic_validation(self) -> None:
734
732
  """Test type substitution enables Pydantic validation."""
735
733
  # Simulate the problematic method signature: Optional[~T]
736
- original_annotation = Optional[T]
734
+ original_annotation = T | None
737
735
 
738
736
  # Before fix: TypeVar prevents validation
739
737
  assert not _needs_pydantic_validation(original_annotation)
@@ -760,7 +758,7 @@ class TestEndToEndTypeSubstitution:
760
758
  assert isinstance(activity_result_dict, dict)
761
759
  with pytest.raises(AttributeError):
762
760
  # This would fail because dict doesn't have the attribute
763
- getattr(activity_result_dict, "assembly_specification_id")
761
+ _ = activity_result_dict.assembly_specification_id
764
762
 
765
763
  # Demonstrate the solution: reconstruct Pydantic object
766
764
  reconstructed = MockAssemblySpecification.model_validate(activity_result_dict)
@@ -6,7 +6,7 @@ their defined Protocols using @runtime_checkable.
6
6
  """
7
7
 
8
8
  import logging
9
- from typing import Type, TypeVar
9
+ from typing import TypeVar
10
10
 
11
11
  logger = logging.getLogger(__name__)
12
12
 
@@ -19,7 +19,7 @@ class RepositoryValidationError(Exception):
19
19
  pass
20
20
 
21
21
 
22
- def validate_repository_protocol(repository: object, protocol: Type[P]) -> None:
22
+ def validate_repository_protocol(repository: object, protocol: type[P]) -> None:
23
23
  """
24
24
  Validate that a repository implementation satisfies a protocol contract.
25
25
 
@@ -72,7 +72,7 @@ def validate_repository_protocol(repository: object, protocol: Type[P]) -> None:
72
72
  )
73
73
 
74
74
 
75
- def ensure_repository_protocol(repository: object, protocol: Type[P]) -> P:
75
+ def ensure_repository_protocol(repository: object, protocol: type[P]) -> P:
76
76
  """
77
77
  Validate and return a repository with proper type annotation.
78
78
 
@@ -11,17 +11,16 @@ providing clear error messages when types don't match expectations.
11
11
 
12
12
  import inspect
13
13
  import logging
14
+ from collections.abc import Callable
14
15
  from functools import wraps
15
16
  from typing import (
16
17
  Any,
17
- Dict,
18
- List,
19
18
  Union,
20
- Callable,
21
- get_type_hints,
22
- get_origin,
23
19
  get_args,
20
+ get_origin,
21
+ get_type_hints,
24
22
  )
23
+
25
24
  from pydantic import BaseModel
26
25
 
27
26
  logger = logging.getLogger(__name__)
@@ -54,7 +53,7 @@ def validate_type(
54
53
  if allow_none:
55
54
  return
56
55
  raise TypeValidationError(
57
- f"{context_name}: Expected {_format_type(expected_type)}, " f"got None"
56
+ f"{context_name}: Expected {_format_type(expected_type)}, got None"
58
57
  )
59
58
 
60
59
  # Get the origin type for generic types (List[X] -> list, Dict -> dict)
@@ -124,7 +123,7 @@ def _validate_generic_type(
124
123
 
125
124
 
126
125
  def _validate_list_contents(
127
- value: List[Any], type_args: tuple, context_name: str
126
+ value: list[Any], type_args: tuple, context_name: str
128
127
  ) -> None:
129
128
  """Validate contents of a list."""
130
129
  if not type_args:
@@ -143,7 +142,7 @@ def _validate_list_contents(
143
142
 
144
143
 
145
144
  def _validate_dict_contents(
146
- value: Dict[Any, Any], type_args: tuple, context_name: str
145
+ value: dict[Any, Any], type_args: tuple, context_name: str
147
146
  ) -> None:
148
147
  """Validate contents of a dictionary."""
149
148
  if len(type_args) < 2:
@@ -241,7 +240,7 @@ def _raise_pydantic_dict_error(
241
240
  "dict_keys": dict_keys,
242
241
  "model_fields": model_fields,
243
242
  "matching_fields": matching_fields,
244
- "dict_sample": {k: v for k, v in list(value.items())[:3]},
243
+ "dict_sample": dict(list(value.items())[:3]),
245
244
  },
246
245
  )
247
246
 
@@ -263,7 +262,7 @@ def _format_value(value: Any, max_items: int = 5) -> str:
263
262
  else:
264
263
  items = list(value.items())[:max_items]
265
264
  return f"{dict(items)}... ({len(value)} total items)"
266
- elif isinstance(value, (list, tuple)):
265
+ elif isinstance(value, list | tuple):
267
266
  if len(value) <= max_items:
268
267
  return str(value)
269
268
  else:
@@ -308,7 +307,9 @@ def validate_parameter_types(
308
307
  param_names = list(sig.parameters.keys())
309
308
 
310
309
  # Validate positional arguments
311
- for i, (param_name, arg_value) in enumerate(zip(param_names, args)):
310
+ for i, (param_name, arg_value) in enumerate(
311
+ zip(param_names, args, strict=False)
312
+ ):
312
313
  if param_name in types_to_check and param_name != "self":
313
314
  try:
314
315
  validate_type(
julee/worker.py CHANGED
@@ -8,30 +8,31 @@ assembly, and knowledge service operations within the julee domain.
8
8
  import asyncio
9
9
  import logging
10
10
  import os
11
+
12
+ from minio import Minio
11
13
  from temporalio.client import Client
12
14
  from temporalio.service import RPCError
13
15
  from temporalio.worker import Worker
14
- from julee.util.repos.temporal.data_converter import temporal_data_converter
15
16
 
16
- from julee.workflows import (
17
- ExtractAssembleWorkflow,
18
- ValidateDocumentWorkflow,
19
- )
17
+ from julee.repositories.minio.client import MinioClient
20
18
  from julee.repositories.temporal.activities import (
21
19
  TemporalMinioAssemblyRepository,
22
20
  TemporalMinioAssemblySpecificationRepository,
21
+ TemporalMinioDocumentPolicyValidationRepository,
23
22
  TemporalMinioDocumentRepository,
24
23
  TemporalMinioKnowledgeServiceConfigRepository,
25
24
  TemporalMinioKnowledgeServiceQueryRepository,
26
25
  TemporalMinioPolicyRepository,
27
- TemporalMinioDocumentPolicyValidationRepository,
28
26
  )
29
27
  from julee.services.temporal.activities import (
30
28
  TemporalKnowledgeService,
31
29
  )
32
- from minio import Minio
33
- from julee.repositories.minio.client import MinioClient
30
+ from julee.util.repos.temporal.data_converter import temporal_data_converter
34
31
  from julee.util.temporal.activities import collect_activities_from_instances
32
+ from julee.workflows import (
33
+ ExtractAssembleWorkflow,
34
+ ValidateDocumentWorkflow,
35
+ )
35
36
 
36
37
  logger = logging.getLogger(__name__)
37
38
 
@@ -10,12 +10,12 @@ Workflows in this package:
10
10
  """
11
11
 
12
12
  from .extract_assemble import (
13
- ExtractAssembleWorkflow,
14
13
  EXTRACT_ASSEMBLE_RETRY_POLICY,
14
+ ExtractAssembleWorkflow,
15
15
  )
16
16
  from .validate_document import (
17
- ValidateDocumentWorkflow,
18
17
  VALIDATE_DOCUMENT_RETRY_POLICY,
18
+ ValidateDocumentWorkflow,
19
19
  )
20
20
 
21
21
  __all__ = [
@@ -7,9 +7,10 @@ compensation for the complex document assembly process.
7
7
  """
8
8
 
9
9
  import logging
10
+ from datetime import timedelta
11
+
10
12
  from temporalio import workflow
11
13
  from temporalio.common import RetryPolicy
12
- from datetime import timedelta
13
14
 
14
15
  from julee.domain.models.assembly import Assembly
15
16
  from julee.domain.use_cases import ExtractAssembleDataUseCase
@@ -7,9 +7,10 @@ compensation for the document validation process.
7
7
  """
8
8
 
9
9
  import logging
10
+ from datetime import timedelta
11
+
10
12
  from temporalio import workflow
11
13
  from temporalio.common import RetryPolicy
12
- from datetime import timedelta
13
14
 
14
15
  from julee.domain.models.policy import DocumentPolicyValidation
15
16
  from julee.domain.use_cases import ValidateDocumentUseCase
@@ -110,8 +111,8 @@ class ValidateDocumentWorkflow:
110
111
  # Import policy repository proxy (assuming it exists)
111
112
  try:
112
113
  from julee.repositories.temporal.proxies import (
113
- WorkflowPolicyRepositoryProxy,
114
114
  WorkflowDocumentPolicyValidationRepositoryProxy,
115
+ WorkflowPolicyRepositoryProxy,
115
116
  )
116
117
 
117
118
  policy_repo = WorkflowPolicyRepositoryProxy() # type: ignore[abstract]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: julee
3
- Version: 0.1.2
3
+ Version: 0.1.4
4
4
  Summary: Julee - Clean architecture for accountable and transparent digital supply chains
5
5
  Author-email: Pyx Industries <chris@pyx.io>
6
6
  License: GPL-3.0
@@ -13,11 +13,10 @@ Classifier: Development Status :: 3 - Alpha
13
13
  Classifier: Intended Audience :: Developers
14
14
  Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
15
15
  Classifier: Programming Language :: Python :: 3
16
- Classifier: Programming Language :: Python :: 3.10
17
16
  Classifier: Programming Language :: Python :: 3.11
18
17
  Classifier: Programming Language :: Python :: 3.12
19
18
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
20
- Requires-Python: >=3.10
19
+ Requires-Python: >=3.11
21
20
  Description-Content-Type: text/markdown
22
21
  License-File: LICENSE
23
22
  Requires-Dist: fastapi>=0.100.0
@@ -50,6 +49,7 @@ Requires-Dist: black>=24.0.0; extra == "dev"
50
49
  Requires-Dist: ruff>=0.5.0; extra == "dev"
51
50
  Requires-Dist: pre-commit>=3.0.0; extra == "dev"
52
51
  Requires-Dist: bandit; extra == "dev"
52
+ Requires-Dist: pip-tools>=7.0.0; extra == "dev"
53
53
  Requires-Dist: asyncpg; extra == "dev"
54
54
  Provides-Extra: docs
55
55
  Requires-Dist: sphinx>=7.0.0; extra == "docs"
@@ -0,0 +1,196 @@
1
+ julee/__init__.py,sha256=8XYQJwEwJdGsPw23i7Zi_8hYCqNqRVrcPTlM0tkTO4g,111
2
+ julee/worker.py,sha256=26k7LkpLft8emjVsSRCK7VmbtTEaBxjokX_5CC52LDM,7231
3
+ julee/api/__init__.py,sha256=bJECAJifuV-pochMVeDqKhQ63jvXel3W4Y0_NK9gn8s,801
4
+ julee/api/app.py,sha256=I4a7fi9rE_0r92jmMusOxlcMalFnTy8qb4yyxKYg6-Q,4955
5
+ julee/api/dependencies.py,sha256=Jcy3nFOiFr9x7_TCd7zpepMLqwIg1LOw7q9taKA0sJk,9313
6
+ julee/api/requests.py,sha256=AluS7tNesJxDV2ux9OWOFaRVsoQhiBhE3g3SkhlhHXc,6448
7
+ julee/api/responses.py,sha256=hKT5wO7O5BbCjEwetbEqtPtWGwA93YIW7efMzxbByzY,1011
8
+ julee/api/routers/__init__.py,sha256=USabSC2VydrRZ9xlpIw7YjuiOQ83tfqT7cALJmVvv_g,1502
9
+ julee/api/routers/assembly_specifications.py,sha256=YxSuPvR19Emenyn617uXN7Cb0kinw84Ng9ef4u3g5M8,7075
10
+ julee/api/routers/documents.py,sha256=GhhFO44o7uxvKc78aEj1193P9838miaHPN5ctWxnJZU,5454
11
+ julee/api/routers/knowledge_service_configs.py,sha256=zCgSatx0HzuzqYkoNPXoGcKTi9XTFAFP5tQpo87yX6k,2586
12
+ julee/api/routers/knowledge_service_queries.py,sha256=NThwys0HEfCWw7oIcA0okp814Pnt0jWsdW-UVqyfZp0,9501
13
+ julee/api/routers/system.py,sha256=VGLh2LwnBqlhYZ6HXQQCKllk89qjwhbdlmIVj2mQz5I,4516
14
+ julee/api/routers/workflows.py,sha256=k7Qcw28sJRcJUAbM9pj3Y81h6gBHvYHW6mSxihQFq8k,7050
15
+ julee/api/services/__init__.py,sha256=YSzraaC6qD7pkEUXqbhlJH3dhwvGusywztnYnIOqJbM,660
16
+ julee/api/services/system_initialization.py,sha256=V3CGizs4Vvi6jGzW2fPuftkEHaw80y14Z_Ync5U3w40,6915
17
+ julee/api/tests/__init__.py,sha256=SAJjurDfB0ac0AUIzRvBsGEupR6BOp2dqNdfNeyXoTQ,411
18
+ julee/api/tests/test_app.py,sha256=PiQGKOzSr3x-8Q9t5NaPLcpTxZVmpwB2JFE5ZOIQx9U,9874
19
+ julee/api/tests/test_dependencies.py,sha256=BpMGWilh9wbWW4aYuu_Agw7LL7YjfLVGqnIofWS_zEs,9245
20
+ julee/api/tests/test_requests.py,sha256=JxiSL38VDoo-6pdoWy9iJrXWbTJa18enoN5jI79COcE,9877
21
+ julee/api/tests/routers/__init__.py,sha256=IawydYDi3sIBEPE6vyX8r_UBxUKc6NDh_UFL2kqdbqM,634
22
+ julee/api/tests/routers/test_assembly_specifications.py,sha256=3puq2f4l1OwLxEBbzstNaJ6e-t3iKABsrIlI29i0okQ,27462
23
+ julee/api/tests/routers/test_documents.py,sha256=6LlFvwRUJOqkPv1f7laRVzMz7k5VmH5J7xi-tqE9bw8,10720
24
+ julee/api/tests/routers/test_knowledge_service_configs.py,sha256=EO2Ngfrd0oQvUKVrbxQ7T5lvfG5eBXcfQ9NDvsJks3g,7848
25
+ julee/api/tests/routers/test_knowledge_service_queries.py,sha256=m-uqPQQQxX0cEx3NVNt-xdgjjSXhinAGZnJVZQIrFK0,26191
26
+ julee/api/tests/routers/test_system.py,sha256=xoOdf0Lt8PO212x4GpM8B5gAyTFbjdjcg5q8sHbC1cA,6287
27
+ julee/api/tests/routers/test_workflows.py,sha256=jcmSOXTJvZacNjWe3jwm_IxqKP3G-pXxmp3ErLsgsR8,13648
28
+ julee/contrib/__init__.py,sha256=RFlW03DFJQxINJCCif7s67LPOKW4rI4BuYWTUbakkGc,503
29
+ julee/contrib/polling/__init__.py,sha256=aNY3esupKvyc7sLtU_lrpZHozwco9gyzozgorepgNqA,1458
30
+ julee/contrib/polling/domain/__init__.py,sha256=Br8M36GJ3UJl3zwk9AwEcx8kkMSb-CVsn7ANH2unrBw,446
31
+ julee/contrib/polling/domain/models/__init__.py,sha256=UEL0aGwCg1Y2D5KyJ5VvVK4-lLaZeVevBLfMapfP-No,263
32
+ julee/contrib/polling/domain/models/polling_config.py,sha256=3YkormKPgzDXvAXBv0VBnjoDi7zaZ-PuRML33lkQpxo,1086
33
+ julee/contrib/polling/domain/services/__init__.py,sha256=k5lhY6roLD68n_O8K4PP3aXH1UkXy8RapKErhhZH9_M,180
34
+ julee/contrib/polling/domain/services/poller.py,sha256=7rTq9fawrdfdAMayrYmVwSfkHWbSbbqSs2Z8zPVjopE,1218
35
+ julee/contrib/polling/infrastructure/__init__.py,sha256=xM3TBrkxAijtXCLl5_EFrRRUDVQFjD41PohT7lWXCuc,413
36
+ julee/contrib/polling/infrastructure/services/__init__.py,sha256=QgoNNS9XPl_tCO-52m_ct37NBzT85_jjWdA-8QbuDJs,246
37
+ julee/contrib/polling/infrastructure/services/polling/__init__.py,sha256=kbUXRCuAFZN-7Xo44MQEdSC9AYKNfvru-cWgwYrS6rA,229
38
+ julee/contrib/polling/infrastructure/services/polling/http/__init__.py,sha256=mSMy6_2eKnrh2tetiVrf9iQEhxbGs_csQlUy82I1s6c,219
39
+ julee/contrib/polling/infrastructure/services/polling/http/http_poller_service.py,sha256=yK7porLBkEXaW6yBcO6-KBEfpjzCsv-i0iCjCSIooQo,2671
40
+ julee/contrib/polling/infrastructure/temporal/__init__.py,sha256=zsBmr9JY2Kb4vIf97NwIvqnuKzWsXgO9EHa47yrkpjw,662
41
+ julee/contrib/polling/infrastructure/temporal/activities.py,sha256=i1jVpMm6a8j60Ug0gKQ3F5QPW0qcrD0vtzdqickym5c,1456
42
+ julee/contrib/polling/infrastructure/temporal/activity_names.py,sha256=zdTu8-b7ucrJH5bIbFGv-nvXf2ZOvWs0YaBsUWC8FWM,668
43
+ julee/contrib/polling/infrastructure/temporal/proxies.py,sha256=mFpHjxtJ-eqm5tYUoA1Te8Fb2lfTwXz-tpHubNLIE0Y,1502
44
+ julee/contrib/polling/tests/__init__.py,sha256=0GSU_Gc9HtB0h6w5_c1qUdMWqCp2FVx-BV-IOR9_uo0,175
45
+ julee/contrib/polling/tests/unit/__init__.py,sha256=8QbeJjQZj0nIKd3F1eTXCR9utxZtiYQzkTyk4yGhCvM,160
46
+ julee/contrib/polling/tests/unit/infrastructure/__init__.py,sha256=BEFimVM4poUCs2AKZOggF4L07T96L85UnfIkt8qxFys,238
47
+ julee/contrib/polling/tests/unit/infrastructure/services/__init__.py,sha256=WCf2KzGeMChltre8YYf8IUtElgP4NmdugNOmKxno0Lw,190
48
+ julee/contrib/polling/tests/unit/infrastructure/services/polling/__init__.py,sha256=ygTzYEe2Zok4pwmGOd2G_Gf5sE5kaC6xHiFmZADiYvs,228
49
+ julee/contrib/polling/tests/unit/infrastructure/services/polling/http/__init__.py,sha256=OVMmGLJ7KEmvKeoDakizgFXSi-Z4QvHFh4B0CINbGSM,283
50
+ julee/contrib/polling/tests/unit/infrastructure/services/polling/http/test_http_poller_service.py,sha256=4B-CTyeHVYRAv-TmG9igSk_ifQeZNYNDeF8uPRz-bHk,6212
51
+ julee/docs/__init__.py,sha256=wknBFq8RF9S1M-oU-S1sw3UWQsmZSjq5Oj7HCCh1AHg,169
52
+ julee/docs/sphinx_hcd/__init__.py,sha256=mpEbmaDGoT74LGDS9wCEakov2mzagpFvWGp6TDDJegA,2378
53
+ julee/docs/sphinx_hcd/accelerators.py,sha256=fNrP9ztTbNjAe0sib23RnkkEuxk3cBkb8lfMojtqz0M,38759
54
+ julee/docs/sphinx_hcd/apps.py,sha256=lNHVJrF-OQ4c6VTv4MZn2b3ewcmSW3IvvgZyUD1HDwk,15974
55
+ julee/docs/sphinx_hcd/config.py,sha256=ilxLjnrG7oLgbSSUL90biFj7xxohgij4hlEfYSjIX0A,4159
56
+ julee/docs/sphinx_hcd/epics.py,sha256=anZXSrvWTzD6SU1fzBioMxZccIjym0TDmppN_eOVCN8,13894
57
+ julee/docs/sphinx_hcd/integrations.py,sha256=3baWEph9uYMipeWrPywmeRMko8LdkQx-LFQvkVcoJ08,9796
58
+ julee/docs/sphinx_hcd/journeys.py,sha256=abmd9kplnsy3gB209Iq_tFOseABkPJU4MGYEAHCSjhY,26582
59
+ julee/docs/sphinx_hcd/personas.py,sha256=V4l6-31KgkDe-TEY0iDEe_TBI3VlFQJyZgAc6m8GKNQ,13662
60
+ julee/docs/sphinx_hcd/stories.py,sha256=cFiNGDlpOE6wNEjZowzlmaGc_bK6xJjzYed9aIQFZLY,32233
61
+ julee/docs/sphinx_hcd/utils.py,sha256=lkmyQShHWLoU6nwxs4PS5pxn_jjsRWVeAexizR46PhA,4488
62
+ julee/domain/__init__.py,sha256=UWEUgtMguDCCsRbTQtsdkaR8-PBei9YI9tn46FtDLe8,774
63
+ julee/domain/models/__init__.py,sha256=HQYop2b0QjroxFHskoX4lcuMVIFRj8jteUI-P9TTze4,1230
64
+ julee/domain/models/assembly/__init__.py,sha256=3bivk26_gmKFUhoUMHumsFHRrXyhgv0ClTxyBPWr9B0,494
65
+ julee/domain/models/assembly/assembly.py,sha256=w7NMRKpu0e6NpWvecIZvvnBsnK9484WtMubEp9gsyd8,3593
66
+ julee/domain/models/assembly/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
67
+ julee/domain/models/assembly/tests/factories.py,sha256=8piauYltuzpNkX5I2g5PJ9bxXoFzvlZ9dv5FSteIcMg,1021
68
+ julee/domain/models/assembly/tests/test_assembly.py,sha256=QxtAJBxM0ZvpAFFkHAK8erAc_oCptfSYW-2DncSAfRw,16429
69
+ julee/domain/models/assembly_specification/__init__.py,sha256=8oHXxCUAwplrL1lTKNyLQg7QxFapmPgroU0W6TMWTNA,804
70
+ julee/domain/models/assembly_specification/assembly_specification.py,sha256=bolyMo8eubj--W5k9yC_CZLU-99eXPTkSPtwjHcJmho,6783
71
+ julee/domain/models/assembly_specification/knowledge_service_query.py,sha256=daVcEsOWN45Z0rjMAkTAiU8M8yiqrHUvCW1wchxsN-4,4282
72
+ julee/domain/models/assembly_specification/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
73
+ julee/domain/models/assembly_specification/tests/factories.py,sha256=CfVY65UW9PtC3isPervUH5pvtzquiHhxClyCG1LqAro,2370
74
+ julee/domain/models/assembly_specification/tests/test_assembly_specification.py,sha256=R-73DHZv_ItRIBgruaOgl9sAek22s8a8T5BT7tRrI3M,18189
75
+ julee/domain/models/assembly_specification/tests/test_knowledge_service_query.py,sha256=wg34sF3TDcocRS737tTzNTsFAfVjFvfObmYproXLlD8,10411
76
+ julee/domain/models/custom_fields/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
77
+ julee/domain/models/custom_fields/content_stream.py,sha256=DRpGjMSUuUwOzbJW-_pVy43IgvqQYn_Qi0612QJjlpY,2348
78
+ julee/domain/models/custom_fields/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
79
+ julee/domain/models/custom_fields/tests/test_custom_fields.py,sha256=1x-MH3FFgC5Ltw7tTqvvWpb1ZnsoRb7BtJ-p6EcdZuQ,1936
80
+ julee/domain/models/document/__init__.py,sha256=DJr8HKqB47AiJ5YIrTf3E-mpFYiKLLOZPEN8qcAJPWI,469
81
+ julee/domain/models/document/document.py,sha256=DgQNP_7alH3qHIhOS77Cx_JvTxZwTLtVuMrU4N5ztAU,5079
82
+ julee/domain/models/document/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
83
+ julee/domain/models/document/tests/factories.py,sha256=4sgVAOXInPO-RnT4ChO4zWWB0cAF9JFwYA50j692Ir0,2457
84
+ julee/domain/models/document/tests/test_document.py,sha256=hIufVemhkA-s403xQsJsyB6mTkcq6a8M0za1pLQ_ItY,9093
85
+ julee/domain/models/knowledge_service_config/__init__.py,sha256=5qYB-nGcVp6CIP7V85hzsQqvBg3HAq5H_p9hPQ5YqGM,431
86
+ julee/domain/models/knowledge_service_config/knowledge_service_config.py,sha256=WAoFtVv60leuWu0pyZrjy46tFD89lCcEHRMshSLnuBU,2945
87
+ julee/domain/models/policy/__init__.py,sha256=jsmjUb1QHD8T5X1Ri_wJkAQTaRig4B997yb6_ll2uC0,283
88
+ julee/domain/models/policy/document_policy_validation.py,sha256=uc9Y3yvz8wof6titUZfN-M4FD297VPhdX2fscp5DNx8,7978
89
+ julee/domain/models/policy/policy.py,sha256=hqSJg3CzKnfcKkVRHfbEJUEvnnGqNNytAVozOXN4teA,7036
90
+ julee/domain/models/policy/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
91
+ julee/domain/models/policy/tests/factories.py,sha256=b8stP-3ovjgckGzaKTpGY2XrfvzgoKq97ru8aCB02so,1300
92
+ julee/domain/models/policy/tests/test_document_policy_validation.py,sha256=TzVdOg_Y1hTaWoptQ9b9D0bOaj29-jPf_JKjft6YMn0,15888
93
+ julee/domain/models/policy/tests/test_policy.py,sha256=g7z9vvmkT0aJPHF2x8lHfjJgBOj6TcH1pejZWjwXvhk,20398
94
+ julee/domain/repositories/__init__.py,sha256=mRJ6MuktqbV93tLrtpBBoP1uPwXe8krqBQjxAgsU0B8,949
95
+ julee/domain/repositories/assembly.py,sha256=4LWo3LcyheuNkZ4U8oV6NAXEcFHxkE46Oa2a97YMMiE,1686
96
+ julee/domain/repositories/assembly_specification.py,sha256=XLxH1lPgr6LJiSyVdB3eZU7Kdr1UVwSvsoXroBMdxKI,2070
97
+ julee/domain/repositories/base.py,sha256=NvhMzDGbmXqBWMoBojMNYk0tGnzi_ik6FTKH8cNNlD4,5348
98
+ julee/domain/repositories/document.py,sha256=ulTbzIehhGD3dtnO6gLA_W93cFp8CdcieHT6kbJaMyE,1877
99
+ julee/domain/repositories/document_policy_validation.py,sha256=_E6emTr5DXF0NVHWLyuhBji-yvxsAo3_iNohH2ynsK8,2110
100
+ julee/domain/repositories/knowledge_service_config.py,sha256=oVXuFfRkfdbR-xa6WP_fAHTbSau_Jwvq4RfA85x5vac,1994
101
+ julee/domain/repositories/knowledge_service_query.py,sha256=9qrWMLT9Xxms9Q7fMjBbkZkmVELFn5ME6kwO6AvgPzI,1506
102
+ julee/domain/repositories/policy.py,sha256=-1Miwk_wmblr9QqVb4aZ_ajk9YIwPUXhxfhGG5CTuFQ,1874
103
+ julee/domain/use_cases/__init__.py,sha256=rKJyunXCHorEyxPfKDEYD27kese53e5spCfFTbDxpOc,534
104
+ julee/domain/use_cases/decorators.py,sha256=mMlR5ws94frAZEUEjj545cZpwnTimZI6JVpMlGu3EpA,3497
105
+ julee/domain/use_cases/extract_assemble_data.py,sha256=D7w63bR-3WXpwDaj2SH_L4ZO-pp4lHWV-K0--xLa7Qs,24946
106
+ julee/domain/use_cases/initialize_system_data.py,sha256=CIYasO96HQMKXh098Gw3r2rerPKsVXRRVLsxnSJnVfo,31330
107
+ julee/domain/use_cases/validate_document.py,sha256=noLzQp4hSJVAr-hL668ywxe4m7aNv2yuBMZzPgJPpIs,28219
108
+ julee/domain/use_cases/tests/__init__.py,sha256=xKgoU78i5zK5mlZ2NNfp8nhbnb9fIcNwCTcQD0j9gEw,199
109
+ julee/domain/use_cases/tests/test_extract_assemble_data.py,sha256=uNcKtzy-u7nwr68wOdDmXLdfw_2p4SA0Lm3czec9mAI,21596
110
+ julee/domain/use_cases/tests/test_initialize_system_data.py,sha256=6JwxQDNwknyPqtmSugKn2Eq1CA1Y8rFEb44yrN1_SCA,17918
111
+ julee/domain/use_cases/tests/test_validate_document.py,sha256=_VcGZK98oDzxN0iLP81hIVdjCPbgmjIJwFeBn5MuWZk,50922
112
+ julee/fixtures/documents.yaml,sha256=QMPbdMtjvsf08iFuNa4U2Kx7nTIGVpeRMlp-eeW9dY0,4918
113
+ julee/fixtures/knowledge_service_configs.yaml,sha256=SfJO1SJFzYtF2Y7XTZmhl3d9Eiv2-xMrHKW1kI7NhI0,1378
114
+ julee/fixtures/knowledge_service_queries.yaml,sha256=uYKD24jMIBhHjGaItyDVqtRlHLVeIRCw8XfhNjiMENk,2447
115
+ julee/maintenance/__init__.py,sha256=tThzvZBQ4bTSiXVfLVuHI2uLQOhZRMfND1ndj26BNu0,65
116
+ julee/maintenance/release.py,sha256=595Cs7CKSV7jsBVWHE3lZNclDievh8BVw5SP5JbrkAk,7697
117
+ julee/repositories/__init__.py,sha256=mJpDFYP5f4LBhavYSnC3SnTcWnozMCz7aXje4iB5pyU,571
118
+ julee/repositories/memory/__init__.py,sha256=w0ibQfMm3HYdFhLXXMPa_aRtbRiG60j2bqmEGdjmOtg,1225
119
+ julee/repositories/memory/assembly.py,sha256=1XuLtNiVKVg8jqwHxzQPJS-YmLGR0PtTiD_XhoPSUSo,2807
120
+ julee/repositories/memory/assembly_specification.py,sha256=pPv3nJuAdqkS3wMs220vp_4uu0OMH3EOuMwWQnk-ZNg,4234
121
+ julee/repositories/memory/base.py,sha256=9FSV9cIgFBfhPqZcUhprDo5QyE9YK-a1m2bnwKX04wQ,7722
122
+ julee/repositories/memory/document.py,sha256=-lcB37q4KIMVL9NxRBq4wq7tuyY7-h4_BI_N62fDSrA,5481
123
+ julee/repositories/memory/document_policy_validation.py,sha256=vjSAT6tk-V4IbWTKZjUTgTQ15YlR1MAZjbYnGprn8Wo,3715
124
+ julee/repositories/memory/knowledge_service_config.py,sha256=sG7bHAO2O131k7GD-8RwGrQ3VNyyEZulVIVBps57aAM,4215
125
+ julee/repositories/memory/knowledge_service_query.py,sha256=0rav6H4caKw-CGM4gsjcwsFba2vjLGJbg7WYg9eB7-Y,3939
126
+ julee/repositories/memory/policy.py,sha256=UjLCqm4V2hiF5kF2H_5IonNb4jXAQcdJ57jouMWjYns,2874
127
+ julee/repositories/memory/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
128
+ julee/repositories/memory/tests/test_document.py,sha256=Ah0pnC1CuDvjDPilM_rR1dzyCwLGjGZIioUAQJqU__o,7793
129
+ julee/repositories/memory/tests/test_document_policy_validation.py,sha256=NDQ0DSUA5tDM33ulmZM9fU93GMbYmj6l_9m6G_YrOwg,6210
130
+ julee/repositories/memory/tests/test_policy.py,sha256=EVi1Zl1mUrkGezjRQGCHQDPK4Loqapg94kAKno72yi8,15840
131
+ julee/repositories/minio/__init__.py,sha256=KiDxZUJ2Cvq9sD8TM2_SO50uDSsRq7g4cKTbDmYHHxI,1211
132
+ julee/repositories/minio/assembly.py,sha256=X3KPgzCEH8Z9kaQN2ANYughPPyF8InBV8-fSM7LSA2s,3724
133
+ julee/repositories/minio/assembly_specification.py,sha256=dnnxxyXteaPjWxsndoo6UIXqjiYmOKI5thMzhQP5ZWo,6393
134
+ julee/repositories/minio/client.py,sha256=p4NnTCL4FaQwPTrAUUyQztQVfQ2WcLubAGjQPn9Efdc,18365
135
+ julee/repositories/minio/document.py,sha256=A79MT1cKoO7N9Wt3y52JuxgWlNqpNA3jPc9dqiCG60Y,20022
136
+ julee/repositories/minio/document_policy_validation.py,sha256=960wS15N7P1PyrBGi1QGAzcjfO01PTO-koXrrZeAoHs,4860
137
+ julee/repositories/minio/knowledge_service_config.py,sha256=IaZlwTXuq4F6efUckUDjKX1gSm6tzBJVQW4COQjnRFA,6714
138
+ julee/repositories/minio/knowledge_service_query.py,sha256=nSH-UBt_42OgWokEKwpIhLmtBf17ShFA2jf8uUaWK8A,6955
139
+ julee/repositories/minio/policy.py,sha256=HGUcxlKkIAwOOnoFUMnpW0qMx_F3vCTvYrdWQ_I6M7M,3870
140
+ julee/repositories/minio/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
141
+ julee/repositories/minio/tests/fake_client.py,sha256=qyV6ApmVm54e3hPZganteE5n2wavOnnleE8Bs_uELJo,7377
142
+ julee/repositories/minio/tests/test_assembly.py,sha256=Sj5qgDgBRZ9gWQZGTC9H81c1LuP7Klq9yi5Wrvs9WvI,13793
143
+ julee/repositories/minio/tests/test_assembly_specification.py,sha256=wCsd6Mbxwsiju1Pn-OQGBpCAEr-4l2wwW9niVOciUms,15240
144
+ julee/repositories/minio/tests/test_client_protocol.py,sha256=mLESv_xrEM2A2eRm2GLfrqeMHdrDdMAdgI-pRRF-svk,2310
145
+ julee/repositories/minio/tests/test_document.py,sha256=z806S9Fjyc5lSJQYy7JL0zfcaensqVIh50eYGfdO2OI,22177
146
+ julee/repositories/minio/tests/test_document_policy_validation.py,sha256=klBc_5dq421I5tN2hIwOgLsfFQ4YnsjDgPb8Ywh74cI,7542
147
+ julee/repositories/minio/tests/test_knowledge_service_config.py,sha256=SeDPWr0Gmxtu-ytRHTUHfxC38Aii64GvteBDunJziBg,14823
148
+ julee/repositories/minio/tests/test_knowledge_service_query.py,sha256=tqlS9w9MShaL83PyfQo8xjFL2Kxli6uJqLIE36qdxa8,15331
149
+ julee/repositories/minio/tests/test_policy.py,sha256=n5flJxj75Yc-dkfmVQBkMDVGCagMB3BzhYtJhcQQWhY,20479
150
+ julee/repositories/temporal/__init__.py,sha256=DPXfhTFFrixbi5GIKs_-emWu1SbD3oqjGlfSXche3rQ,1416
151
+ julee/repositories/temporal/activities.py,sha256=xDd6SRR_TNxLHb5TYnfAwsWlWgYrtD0vDvV8HqX1Ebo,3716
152
+ julee/repositories/temporal/activity_names.py,sha256=qg0ZJvnMPaTHHnu9fHxzsDTjUb5viNATbMTL3Xg0A_c,1464
153
+ julee/repositories/temporal/proxies.py,sha256=eKNEOD_HuNeDxA62eJpR_Zf2KpZ-xnL91UKsV7_aXVc,4783
154
+ julee/services/__init__.py,sha256=LNoQvHMWQi1YMQW0xWw9KeTHOVMsYdhLj-nvu4HClFU,560
155
+ julee/services/knowledge_service/__init__.py,sha256=xsrMieT-IezlINBEAkM9KAMy5ZDODQqDtbqpK8DMhXM,1148
156
+ julee/services/knowledge_service/factory.py,sha256=gLRkbrmALuL7rqsuaqWJqHm6TllgsbYCe0RrvDIBfYE,4605
157
+ julee/services/knowledge_service/knowledge_service.py,sha256=-CT_bAPi6oZm_TB7hVh5E6Q2EWAC9kFWvLfWGhR8h2M,6384
158
+ julee/services/knowledge_service/test_factory.py,sha256=8HM3_touOYGohuBwJkhuF8wv5_R4U1RZTVebU13KLP0,3925
159
+ julee/services/knowledge_service/anthropic/__init__.py,sha256=eO_85w4dd9hgzcnsqMoE0bvcjBtTuIhyQ0vqdPHdoQ4,297
160
+ julee/services/knowledge_service/anthropic/knowledge_service.py,sha256=WtpQl9QTvNo6mAS7A-L18FHddJ7eF8BVYMIopEZdnVQ,11918
161
+ julee/services/knowledge_service/anthropic/tests/test_knowledge_service.py,sha256=ijsjh2CQhO74lt0wmfU-qvqJYmN9ZPvzxJ0qm4rCZYc,12910
162
+ julee/services/knowledge_service/memory/__init__.py,sha256=QgAw_Bt3ctn2S2c2OeTwOSADqEx-UIsG1dnoyITifW0,364
163
+ julee/services/knowledge_service/memory/knowledge_service.py,sha256=HATVCtJATkYAcZ_t13fSVrGtxeJZUZjlN1C4iMVPjEY,9954
164
+ julee/services/knowledge_service/memory/test_knowledge_service.py,sha256=AxZc9gzFOcHliZI8ZYDOticz88bxXp2kQHQhRq3yAUc,12973
165
+ julee/services/temporal/__init__.py,sha256=xPfg55wTler89fH4NbAt7uawGOJlz8vQiKJzi7ONAHM,1376
166
+ julee/services/temporal/activities.py,sha256=UhXDt50tJbaKQ6n1BpQWs3lUBY9UuTdhS0hiov2k5-w,3319
167
+ julee/services/temporal/activity_names.py,sha256=OG0XqCLt40m8h7nglV-k6K5Oyk9bUexND9M1OJ2zfoo,817
168
+ julee/services/temporal/proxies.py,sha256=GSs8v-R5jPkcRh7VUqQhNNadTiDX3K6gz7mP2ISfXz0,1266
169
+ julee/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
170
+ julee/util/domain.py,sha256=aoQgM6ldnbhnUaxzV0vxOMMiVpsyO9u0eEiLz8wl9Eo,3251
171
+ julee/util/repositories.py,sha256=7WkQDojI4-dnu5ZyFMns8nlXMl_zpHwECA9uJtbx6u0,1826
172
+ julee/util/repos/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
173
+ julee/util/repos/minio/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
174
+ julee/util/repos/minio/file_storage.py,sha256=JqS7M0VII_4gFTAQSLZvHXBVt8ulTm7EmZsNBFyau0E,7552
175
+ julee/util/repos/temporal/__init__.py,sha256=Dj73jgf2f0ugOr01wUdketzBgNsSu4GpLAaSbkjUYnQ,357
176
+ julee/util/repos/temporal/data_converter.py,sha256=PSPRSjBMqLTfWppy2-3uM9eKFDgdXXdbDowkW7gggSA,4493
177
+ julee/util/repos/temporal/minio_file_storage.py,sha256=fORyslZvZ3Eeh9LSlN994kJog4iJPeWTo0AjAN_6pVI,427
178
+ julee/util/repos/temporal/client_proxies/file_storage.py,sha256=rCJaZ-adLBYqkBM7yxBrc3dQtJSf23jQJ_KkljlYTE8,2343
179
+ julee/util/repos/temporal/proxies/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
180
+ julee/util/repos/temporal/proxies/file_storage.py,sha256=djmIlKn2yrRHvk5j9SRv7GuwPuVHh9gXFt-_m7uxLis,2458
181
+ julee/util/temporal/__init__.py,sha256=86xXEL8K5NAhT4s2H1uov8jV68NLkJiCZl2GDJaLnPg,491
182
+ julee/util/temporal/activities.py,sha256=j-xV12x-5KJQWT1I8_KhIWtPVYysLJo9A2Xwx4e31bc,4383
183
+ julee/util/temporal/decorators.py,sha256=MJzQcp7jD6jAzcwE-o3uKpIZy5r0H5I6hn72fBtHbic,17984
184
+ julee/util/tests/__init__.py,sha256=guP9qBQwD15l3fIX1kYS8v67pKHAHOCCqib9Us_eJ1Y,61
185
+ julee/util/tests/test_decorators.py,sha256=7U8f2UioCsXibtMZngVmw9SEIjEFdZGjPTOLJe3ksZ4,27425
186
+ julee/util/validation/__init__.py,sha256=Jp8A3iXEvLRaj07Z2UPnOBVO2QAUOW5ITCwMdLAgQyw,769
187
+ julee/util/validation/repository.py,sha256=li0bLav8ZpRqPe7aaOaZQQItdf_Ll-ZWJs7NpF8nmm0,3135
188
+ julee/util/validation/type_guards.py,sha256=sH9NfnrWAOQnLKQQNpJRdz1ygkt5nTUmKyjVDOE8iME,12548
189
+ julee/workflows/__init__.py,sha256=sHXZm4EPvsch6IYcJGqGuPJIep8XZQ8XvEju5b34tTs,724
190
+ julee/workflows/extract_assemble.py,sha256=ZldmLdwwn1LomDJg4gNGYrnY87tiXtU8em3-l_fqLGs,7876
191
+ julee/workflows/validate_document.py,sha256=Cwl-XgcQWeVCC-cGOAslS1vCjQosiWUi79c2uQfTYNc,8230
192
+ julee-0.1.4.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
193
+ julee-0.1.4.dist-info/METADATA,sha256=2BMROf21mgMvdnWvHOr1YCh5Z8ZVc-llVk7ZrJdMm48,7011
194
+ julee-0.1.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
195
+ julee-0.1.4.dist-info/top_level.txt,sha256=woyPXhn9n-aM3oekZ341P1enrjj6nIcTwOxQL32VCLc,6
196
+ julee-0.1.4.dist-info/RECORD,,
@@ -1,70 +0,0 @@
1
- assembly_specifications:
2
- - assembly_specification_id: "meeting-minutes-assembly"
3
- name: "Meeting Minutes Assembly"
4
- applicability: "Meeting transcripts from video conferences or in-person meetings that need to be structured into formal meeting minutes"
5
- status: "active"
6
- version: "1.0"
7
- jsonschema:
8
- $schema: "http://json-schema.org/draft-07/schema#"
9
- title: "Meeting Minutes"
10
- type: "object"
11
- properties:
12
- meeting_info:
13
- type: "object"
14
- properties:
15
- title:
16
- type: "string"
17
- date:
18
- type: "string"
19
- format: "date"
20
- start_time:
21
- type: "string"
22
- end_time:
23
- type: "string"
24
- attendees:
25
- type: "array"
26
- items:
27
- type: "object"
28
- properties:
29
- name:
30
- type: "string"
31
- role:
32
- type: "string"
33
- required: ["name", "role"]
34
- required: ["title", "date", "attendees"]
35
- agenda_items:
36
- type: "array"
37
- items:
38
- type: "object"
39
- properties:
40
- topic:
41
- type: "string"
42
- discussion_points:
43
- type: "array"
44
- items:
45
- type: "string"
46
- decisions:
47
- type: "array"
48
- items:
49
- type: "string"
50
- required: ["topic"]
51
- action_items:
52
- type: "array"
53
- items:
54
- type: "object"
55
- properties:
56
- task:
57
- type: "string"
58
- assignee:
59
- type: "string"
60
- due_date:
61
- type: "string"
62
- priority:
63
- type: "string"
64
- enum: ["low", "medium", "high"]
65
- required: ["task", "assignee"]
66
- required: ["meeting_info", "agenda_items"]
67
- knowledge_service_queries:
68
- "/properties/meeting_info": "extract-meeting-info-query"
69
- "/properties/agenda_items": "extract-agenda-items-query"
70
- "/properties/action_items": "extract-action-items-query"