julee 0.1.4__py3-none-any.whl → 0.1.5__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.
- julee/__init__.py +1 -1
- julee/api/tests/routers/test_assembly_specifications.py +2 -0
- julee/api/tests/routers/test_documents.py +2 -0
- julee/api/tests/routers/test_knowledge_service_configs.py +2 -0
- julee/api/tests/routers/test_knowledge_service_queries.py +2 -0
- julee/api/tests/routers/test_system.py +2 -0
- julee/api/tests/routers/test_workflows.py +2 -0
- julee/api/tests/test_app.py +2 -0
- julee/api/tests/test_dependencies.py +2 -0
- julee/api/tests/test_requests.py +2 -0
- julee/contrib/polling/__init__.py +22 -19
- julee/contrib/polling/apps/__init__.py +17 -0
- julee/contrib/polling/apps/worker/__init__.py +17 -0
- julee/contrib/polling/apps/worker/pipelines.py +288 -0
- julee/contrib/polling/domain/__init__.py +7 -9
- julee/contrib/polling/domain/models/__init__.py +6 -7
- julee/contrib/polling/domain/models/polling_config.py +18 -1
- julee/contrib/polling/domain/services/__init__.py +6 -5
- julee/contrib/polling/domain/services/poller.py +1 -1
- julee/contrib/polling/infrastructure/__init__.py +9 -8
- julee/contrib/polling/infrastructure/services/__init__.py +6 -5
- julee/contrib/polling/infrastructure/services/polling/__init__.py +6 -5
- julee/contrib/polling/infrastructure/services/polling/http/__init__.py +6 -5
- julee/contrib/polling/infrastructure/services/polling/http/http_poller_service.py +5 -2
- julee/contrib/polling/infrastructure/temporal/__init__.py +12 -12
- julee/contrib/polling/infrastructure/temporal/activities.py +1 -1
- julee/contrib/polling/infrastructure/temporal/manager.py +291 -0
- julee/contrib/polling/infrastructure/temporal/proxies.py +1 -1
- julee/contrib/polling/tests/unit/apps/worker/test_pipelines.py +580 -0
- julee/contrib/polling/tests/unit/infrastructure/services/polling/http/test_http_poller_service.py +40 -2
- julee/contrib/polling/tests/unit/infrastructure/temporal/__init__.py +7 -0
- julee/contrib/polling/tests/unit/infrastructure/temporal/test_manager.py +475 -0
- julee/domain/models/assembly/tests/test_assembly.py +2 -0
- julee/domain/models/assembly_specification/tests/test_assembly_specification.py +2 -0
- julee/domain/models/assembly_specification/tests/test_knowledge_service_query.py +2 -0
- julee/domain/models/custom_fields/tests/test_custom_fields.py +2 -0
- julee/domain/models/document/tests/test_document.py +2 -0
- julee/domain/models/policy/tests/test_document_policy_validation.py +2 -0
- julee/domain/models/policy/tests/test_policy.py +2 -0
- julee/domain/use_cases/tests/test_extract_assemble_data.py +2 -0
- julee/domain/use_cases/tests/test_initialize_system_data.py +2 -0
- julee/domain/use_cases/tests/test_validate_document.py +2 -0
- julee/maintenance/release.py +10 -5
- julee/repositories/memory/tests/test_document.py +2 -0
- julee/repositories/memory/tests/test_document_policy_validation.py +2 -0
- julee/repositories/memory/tests/test_policy.py +2 -0
- julee/repositories/minio/tests/test_assembly.py +2 -0
- julee/repositories/minio/tests/test_assembly_specification.py +2 -0
- julee/repositories/minio/tests/test_client_protocol.py +3 -0
- julee/repositories/minio/tests/test_document.py +2 -0
- julee/repositories/minio/tests/test_document_policy_validation.py +2 -0
- julee/repositories/minio/tests/test_knowledge_service_config.py +2 -0
- julee/repositories/minio/tests/test_knowledge_service_query.py +2 -0
- julee/repositories/minio/tests/test_policy.py +2 -0
- julee/services/knowledge_service/anthropic/tests/test_knowledge_service.py +2 -0
- julee/services/knowledge_service/memory/test_knowledge_service.py +2 -0
- julee/services/knowledge_service/test_factory.py +2 -0
- julee/util/tests/test_decorators.py +2 -0
- julee-0.1.5.dist-info/METADATA +103 -0
- {julee-0.1.4.dist-info → julee-0.1.5.dist-info}/RECORD +63 -56
- julee-0.1.4.dist-info/METADATA +0 -197
- {julee-0.1.4.dist-info → julee-0.1.5.dist-info}/WHEEL +0 -0
- {julee-0.1.4.dist-info → julee-0.1.5.dist-info}/licenses/LICENSE +0 -0
- {julee-0.1.4.dist-info → julee-0.1.5.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: julee
|
|
3
|
+
Version: 0.1.5
|
|
4
|
+
Summary: Julee - Clean architecture for accountable and transparent digital supply chains
|
|
5
|
+
Author-email: Pyx Industries <chris@pyx.io>
|
|
6
|
+
License: GPL-3.0
|
|
7
|
+
Project-URL: Homepage, https://github.com/pyx-industries/julee
|
|
8
|
+
Project-URL: Repository, https://github.com/pyx-industries/julee
|
|
9
|
+
Project-URL: Documentation, https://github.com/pyx-industries/julee#readme
|
|
10
|
+
Project-URL: Issues, https://github.com/pyx-industries/julee/issues
|
|
11
|
+
Keywords: temporal,workflow,document-processing,ai,supply-chain
|
|
12
|
+
Classifier: Development Status :: 3 - Alpha
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
19
|
+
Requires-Python: >=3.11
|
|
20
|
+
Description-Content-Type: text/markdown
|
|
21
|
+
License-File: LICENSE
|
|
22
|
+
Requires-Dist: fastapi>=0.100.0
|
|
23
|
+
Requires-Dist: uvicorn>=0.20.0
|
|
24
|
+
Requires-Dist: python-multipart
|
|
25
|
+
Requires-Dist: fastapi-pagination>=0.12.0
|
|
26
|
+
Requires-Dist: pydantic>=2.0.0
|
|
27
|
+
Requires-Dist: temporalio[pydantic]>=1.3.0
|
|
28
|
+
Requires-Dist: minio>=7.0.0
|
|
29
|
+
Requires-Dist: anthropic>=0.66.0
|
|
30
|
+
Requires-Dist: click>=0.8.0
|
|
31
|
+
Requires-Dist: Jinja2>=3.0.0
|
|
32
|
+
Requires-Dist: PyYAML>=6.0.0
|
|
33
|
+
Requires-Dist: python-magic>=0.4.27
|
|
34
|
+
Requires-Dist: multihash>=0.1.1
|
|
35
|
+
Requires-Dist: six>=1.16.0
|
|
36
|
+
Requires-Dist: jsonschema>=4.0.0
|
|
37
|
+
Requires-Dist: jsonpointer>=3.0.0
|
|
38
|
+
Provides-Extra: dev
|
|
39
|
+
Requires-Dist: pytest>=8.0.0; extra == "dev"
|
|
40
|
+
Requires-Dist: pytest-asyncio>=1.0.0; extra == "dev"
|
|
41
|
+
Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
|
|
42
|
+
Requires-Dist: pytest-xdist>=3.5.0; extra == "dev"
|
|
43
|
+
Requires-Dist: hypothesis>=6.0.0; extra == "dev"
|
|
44
|
+
Requires-Dist: factory-boy>=3.2.0; extra == "dev"
|
|
45
|
+
Requires-Dist: mypy>=1.7.0; extra == "dev"
|
|
46
|
+
Requires-Dist: types-PyYAML; extra == "dev"
|
|
47
|
+
Requires-Dist: types-jsonschema; extra == "dev"
|
|
48
|
+
Requires-Dist: types-python-dateutil; extra == "dev"
|
|
49
|
+
Requires-Dist: black>=24.0.0; extra == "dev"
|
|
50
|
+
Requires-Dist: ruff>=0.5.0; extra == "dev"
|
|
51
|
+
Requires-Dist: pre-commit>=3.0.0; extra == "dev"
|
|
52
|
+
Requires-Dist: bandit; extra == "dev"
|
|
53
|
+
Requires-Dist: pip-tools>=7.0.0; extra == "dev"
|
|
54
|
+
Requires-Dist: asyncpg; extra == "dev"
|
|
55
|
+
Provides-Extra: docs
|
|
56
|
+
Requires-Dist: sphinx>=7.0.0; extra == "docs"
|
|
57
|
+
Requires-Dist: sphinx-autobuild>=2021.3.14; extra == "docs"
|
|
58
|
+
Requires-Dist: sphinx-rtd-theme>=2.0.0; extra == "docs"
|
|
59
|
+
Requires-Dist: furo>=2023.9.10; extra == "docs"
|
|
60
|
+
Requires-Dist: sphinx-autodoc-typehints>=1.25.0; extra == "docs"
|
|
61
|
+
Requires-Dist: sphinxcontrib-mermaid>=0.9.2; extra == "docs"
|
|
62
|
+
Requires-Dist: sphinxcontrib-plantuml>=0.25; extra == "docs"
|
|
63
|
+
Requires-Dist: sphinx-autoapi>=3.0.0; extra == "docs"
|
|
64
|
+
Dynamic: license-file
|
|
65
|
+
|
|
66
|
+
# Julee
|
|
67
|
+
|
|
68
|
+
Clean architecture for accountable and transparent digital supply chains.
|
|
69
|
+
|
|
70
|
+
Julee is a Python framework for building resilient, auditable business processes using Temporal workflows. Solutions are organized around your business domain—your bounded contexts become "accelerators" that speak your business language, not framework jargon.
|
|
71
|
+
|
|
72
|
+
**Use Julee when:** processes must be done correctly, may be complex or long-running, need compliance audit trails (responsible AI, algorithmic due-diligence), or depend on unreliable services that may fail, timeout, or be rate-limited.
|
|
73
|
+
|
|
74
|
+
**Core concepts:** Accelerators are collections of pipelines that automate a business area. Pipelines are use cases wrapped with Temporal, providing durability (survives crashes), reliability (automatic retries), observability (complete execution history), and supply chain provenance (audit trails that become "digital product passports").
|
|
75
|
+
|
|
76
|
+
## Installation
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
pip install julee
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Runtime Dependencies
|
|
83
|
+
|
|
84
|
+
Julee applications require: [Temporal](https://temporal.io/) (workflow orchestration), S3-compatible object storage (e.g. MinIO), PostgreSQL (for Temporal).
|
|
85
|
+
|
|
86
|
+
## Documentation
|
|
87
|
+
|
|
88
|
+
Full documentation at [julee.readthedocs.io](https://julee.readthedocs.io), package on [PyPI](https://pypi.org/project/julee/).
|
|
89
|
+
|
|
90
|
+
## Example
|
|
91
|
+
|
|
92
|
+
This repository includes a Docker Compose example demonstrating a meeting minutes extraction system:
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
cp .env.example .env # Add your ANTHROPIC_API_KEY
|
|
96
|
+
docker compose up --build
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
See the `demo-ui/` directory for the UI source.
|
|
100
|
+
|
|
101
|
+
## License
|
|
102
|
+
|
|
103
|
+
GPL-3.0 — see [LICENSE](LICENSE) for details.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
julee/__init__.py,sha256=
|
|
1
|
+
julee/__init__.py,sha256=vG46rbd6qYeNtSgP3Awo8RqA2n7Qka3HlsGutEc7sZM,111
|
|
2
2
|
julee/worker.py,sha256=26k7LkpLft8emjVsSRCK7VmbtTEaBxjokX_5CC52LDM,7231
|
|
3
3
|
julee/api/__init__.py,sha256=bJECAJifuV-pochMVeDqKhQ63jvXel3W4Y0_NK9gn8s,801
|
|
4
4
|
julee/api/app.py,sha256=I4a7fi9rE_0r92jmMusOxlcMalFnTy8qb4yyxKYg6-Q,4955
|
|
@@ -15,39 +15,46 @@ julee/api/routers/workflows.py,sha256=k7Qcw28sJRcJUAbM9pj3Y81h6gBHvYHW6mSxihQFq8
|
|
|
15
15
|
julee/api/services/__init__.py,sha256=YSzraaC6qD7pkEUXqbhlJH3dhwvGusywztnYnIOqJbM,660
|
|
16
16
|
julee/api/services/system_initialization.py,sha256=V3CGizs4Vvi6jGzW2fPuftkEHaw80y14Z_Ync5U3w40,6915
|
|
17
17
|
julee/api/tests/__init__.py,sha256=SAJjurDfB0ac0AUIzRvBsGEupR6BOp2dqNdfNeyXoTQ,411
|
|
18
|
-
julee/api/tests/test_app.py,sha256=
|
|
19
|
-
julee/api/tests/test_dependencies.py,sha256=
|
|
20
|
-
julee/api/tests/test_requests.py,sha256=
|
|
18
|
+
julee/api/tests/test_app.py,sha256=EYIwQlWloLxMF_EkTUW9kV_8tZhqe992s6OIKGNWesc,9905
|
|
19
|
+
julee/api/tests/test_dependencies.py,sha256=FkDI_e3EOxGwWj4su9n65qt7OOa0UwVwDvKLOZQT4XI,9276
|
|
20
|
+
julee/api/tests/test_requests.py,sha256=0wSite_5O5vDYQAacC10VFvUBcLZoAHEa6zLTc_jgsU,9908
|
|
21
21
|
julee/api/tests/routers/__init__.py,sha256=IawydYDi3sIBEPE6vyX8r_UBxUKc6NDh_UFL2kqdbqM,634
|
|
22
|
-
julee/api/tests/routers/test_assembly_specifications.py,sha256=
|
|
23
|
-
julee/api/tests/routers/test_documents.py,sha256
|
|
24
|
-
julee/api/tests/routers/test_knowledge_service_configs.py,sha256=
|
|
25
|
-
julee/api/tests/routers/test_knowledge_service_queries.py,sha256=
|
|
26
|
-
julee/api/tests/routers/test_system.py,sha256=
|
|
27
|
-
julee/api/tests/routers/test_workflows.py,sha256=
|
|
22
|
+
julee/api/tests/routers/test_assembly_specifications.py,sha256=wxw4GNlyaDyWI-AWMQ14LCw4bRlxCjYokYnqMRhoZ2U,27493
|
|
23
|
+
julee/api/tests/routers/test_documents.py,sha256=-I7JAdYQmJSaie8jso67myUg17nUKgX9ptWXmMLVEEI,10751
|
|
24
|
+
julee/api/tests/routers/test_knowledge_service_configs.py,sha256=iqZYC7J6Nswb5ALqpg_IdwzCnskgBrYiCSHbSBUuUuI,7879
|
|
25
|
+
julee/api/tests/routers/test_knowledge_service_queries.py,sha256=PZQ3hSy6MHqSRnPFX-2__UJSpOMaOKogqRc4JP8e3vI,26222
|
|
26
|
+
julee/api/tests/routers/test_system.py,sha256=livmWhccmkYdTTUBoERcsvkmfVIG9IpI_FxcaS55IpI,6318
|
|
27
|
+
julee/api/tests/routers/test_workflows.py,sha256=sg3Xl6zzMzgd9IkLzceGIRRKJZA2ZZ4PbqW7dMlhgWY,13679
|
|
28
28
|
julee/contrib/__init__.py,sha256=RFlW03DFJQxINJCCif7s67LPOKW4rI4BuYWTUbakkGc,503
|
|
29
|
-
julee/contrib/polling/__init__.py,sha256=
|
|
30
|
-
julee/contrib/polling/
|
|
31
|
-
julee/contrib/polling/
|
|
32
|
-
julee/contrib/polling/
|
|
33
|
-
julee/contrib/polling/domain/
|
|
34
|
-
julee/contrib/polling/domain/
|
|
35
|
-
julee/contrib/polling/
|
|
36
|
-
julee/contrib/polling/
|
|
37
|
-
julee/contrib/polling/
|
|
38
|
-
julee/contrib/polling/infrastructure/
|
|
39
|
-
julee/contrib/polling/infrastructure/services/
|
|
40
|
-
julee/contrib/polling/infrastructure/
|
|
41
|
-
julee/contrib/polling/infrastructure/
|
|
29
|
+
julee/contrib/polling/__init__.py,sha256=xk0bRSShKdJXcm8CMqJ7tQWSBdLwOLLj05-pXd2cUSM,2115
|
|
30
|
+
julee/contrib/polling/apps/__init__.py,sha256=f1SCPBxN5pD-okEz7Bc7q8ApVSmhTxxb7edZq3z7ejU,619
|
|
31
|
+
julee/contrib/polling/apps/worker/__init__.py,sha256=a7q35Tmmia0NxfCxwMeWeOq5ZacZ082VYxe_9hseYOE,619
|
|
32
|
+
julee/contrib/polling/apps/worker/pipelines.py,sha256=aScz2hGynJ7_vYjwUsx6QMAxxbgj2JqWzezMHkxd0Bo,11021
|
|
33
|
+
julee/contrib/polling/domain/__init__.py,sha256=9TGbfrNXaQgjrCOUwAifidSQ3CP7FAqQUNVpXk5GAUo,576
|
|
34
|
+
julee/contrib/polling/domain/models/__init__.py,sha256=AUgbHTVy2AHYTfaLKG1DvtE11UB1B-xzaFVCtQoHzC0,369
|
|
35
|
+
julee/contrib/polling/domain/models/polling_config.py,sha256=6n89yP5c1XblKvnj4vialLgrmqzLcY3p_LV_4aTYaUo,1720
|
|
36
|
+
julee/contrib/polling/domain/services/__init__.py,sha256=vyZJwPf2595jVTs9TCcU4w7df2OvhM2HdbYQbMWUjr8,332
|
|
37
|
+
julee/contrib/polling/domain/services/poller.py,sha256=UXbaXOwEeaivfIY5YqB0IqbGeMXh_92jdHtDopTPqW0,1233
|
|
38
|
+
julee/contrib/polling/infrastructure/__init__.py,sha256=e6DpiyFHdx03pZ-SXVU6eM-u0Djwnra_oajYFiYJ5dw,709
|
|
39
|
+
julee/contrib/polling/infrastructure/services/__init__.py,sha256=TOK7Y2P9yNpx-AUmFSPSuIiN0Jw-ngEb9ts3gPy3l60,407
|
|
40
|
+
julee/contrib/polling/infrastructure/services/polling/__init__.py,sha256=tdM0ylrmhPh9fA3EfgmeOwqkQaYc-ztPi6PMatLh01A,393
|
|
41
|
+
julee/contrib/polling/infrastructure/services/polling/http/__init__.py,sha256=Dh6ryomDtauQO1gdtfQ1j3J2ZDUtwumHjHEdG3FC_C0,388
|
|
42
|
+
julee/contrib/polling/infrastructure/services/polling/http/http_poller_service.py,sha256=Ul_64NoAy51IsHZLBr1UQklTCs2QxNZv7XCP_rh249E,2706
|
|
43
|
+
julee/contrib/polling/infrastructure/temporal/__init__.py,sha256=PxgpYra_LFKW7tmag4DmuQvzDN2jeiCQuVBmu5Qfc78,923
|
|
44
|
+
julee/contrib/polling/infrastructure/temporal/activities.py,sha256=M7fs-5wujESsUNoiB-Y-OUHa6N6pFUcjnqa8nBtFR4w,1476
|
|
42
45
|
julee/contrib/polling/infrastructure/temporal/activity_names.py,sha256=zdTu8-b7ucrJH5bIbFGv-nvXf2ZOvWs0YaBsUWC8FWM,668
|
|
43
|
-
julee/contrib/polling/infrastructure/temporal/
|
|
46
|
+
julee/contrib/polling/infrastructure/temporal/manager.py,sha256=90T5jikv7F-wB4cCdmCIWyQxOf1o5dswneAz7n3KpwQ,9660
|
|
47
|
+
julee/contrib/polling/infrastructure/temporal/proxies.py,sha256=eiYr1d0tXkREpbJx7nG5Otc7FCxNJrLFtj2CMzJd5iM,1509
|
|
44
48
|
julee/contrib/polling/tests/__init__.py,sha256=0GSU_Gc9HtB0h6w5_c1qUdMWqCp2FVx-BV-IOR9_uo0,175
|
|
45
49
|
julee/contrib/polling/tests/unit/__init__.py,sha256=8QbeJjQZj0nIKd3F1eTXCR9utxZtiYQzkTyk4yGhCvM,160
|
|
50
|
+
julee/contrib/polling/tests/unit/apps/worker/test_pipelines.py,sha256=_1bvvOV9LDYuup9OmKTBvYm7acL55o98Yku2i39kU4E,23306
|
|
46
51
|
julee/contrib/polling/tests/unit/infrastructure/__init__.py,sha256=BEFimVM4poUCs2AKZOggF4L07T96L85UnfIkt8qxFys,238
|
|
47
52
|
julee/contrib/polling/tests/unit/infrastructure/services/__init__.py,sha256=WCf2KzGeMChltre8YYf8IUtElgP4NmdugNOmKxno0Lw,190
|
|
48
53
|
julee/contrib/polling/tests/unit/infrastructure/services/polling/__init__.py,sha256=ygTzYEe2Zok4pwmGOd2G_Gf5sE5kaC6xHiFmZADiYvs,228
|
|
49
54
|
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=
|
|
55
|
+
julee/contrib/polling/tests/unit/infrastructure/services/polling/http/test_http_poller_service.py,sha256=EQ7CV_CCgJIVfpunLvy8fc4lOSUoxiNdHW21TDB27mM,7613
|
|
56
|
+
julee/contrib/polling/tests/unit/infrastructure/temporal/__init__.py,sha256=8SkkiZsr_RjD__H27tObR2F6EennVe7F_hsnHvmqGUI,267
|
|
57
|
+
julee/contrib/polling/tests/unit/infrastructure/temporal/test_manager.py,sha256=gintS5ZyaHfo16GJb5YL-MKoOERnN7na8P4BK42OgeA,18818
|
|
51
58
|
julee/docs/__init__.py,sha256=wknBFq8RF9S1M-oU-S1sw3UWQsmZSjq5Oj7HCCh1AHg,169
|
|
52
59
|
julee/docs/sphinx_hcd/__init__.py,sha256=mpEbmaDGoT74LGDS9wCEakov2mzagpFvWGp6TDDJegA,2378
|
|
53
60
|
julee/docs/sphinx_hcd/accelerators.py,sha256=fNrP9ztTbNjAe0sib23RnkkEuxk3cBkb8lfMojtqz0M,38759
|
|
@@ -65,23 +72,23 @@ julee/domain/models/assembly/__init__.py,sha256=3bivk26_gmKFUhoUMHumsFHRrXyhgv0C
|
|
|
65
72
|
julee/domain/models/assembly/assembly.py,sha256=w7NMRKpu0e6NpWvecIZvvnBsnK9484WtMubEp9gsyd8,3593
|
|
66
73
|
julee/domain/models/assembly/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
67
74
|
julee/domain/models/assembly/tests/factories.py,sha256=8piauYltuzpNkX5I2g5PJ9bxXoFzvlZ9dv5FSteIcMg,1021
|
|
68
|
-
julee/domain/models/assembly/tests/test_assembly.py,sha256=
|
|
75
|
+
julee/domain/models/assembly/tests/test_assembly.py,sha256=4eKIjpAeN0XoFRFDpaShjh7pOsTEy6QzXm1TshOJwvg,16460
|
|
69
76
|
julee/domain/models/assembly_specification/__init__.py,sha256=8oHXxCUAwplrL1lTKNyLQg7QxFapmPgroU0W6TMWTNA,804
|
|
70
77
|
julee/domain/models/assembly_specification/assembly_specification.py,sha256=bolyMo8eubj--W5k9yC_CZLU-99eXPTkSPtwjHcJmho,6783
|
|
71
78
|
julee/domain/models/assembly_specification/knowledge_service_query.py,sha256=daVcEsOWN45Z0rjMAkTAiU8M8yiqrHUvCW1wchxsN-4,4282
|
|
72
79
|
julee/domain/models/assembly_specification/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
73
80
|
julee/domain/models/assembly_specification/tests/factories.py,sha256=CfVY65UW9PtC3isPervUH5pvtzquiHhxClyCG1LqAro,2370
|
|
74
|
-
julee/domain/models/assembly_specification/tests/test_assembly_specification.py,sha256=
|
|
75
|
-
julee/domain/models/assembly_specification/tests/test_knowledge_service_query.py,sha256=
|
|
81
|
+
julee/domain/models/assembly_specification/tests/test_assembly_specification.py,sha256=AyW8eepsUAaY_TcE7zrQBl8lxE3o06i0ux26nECE9UE,18220
|
|
82
|
+
julee/domain/models/assembly_specification/tests/test_knowledge_service_query.py,sha256=nEmLzAgSUaPfXnYPeuqyuidyjU39ah-Zp1NAK04SfGI,10442
|
|
76
83
|
julee/domain/models/custom_fields/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
77
84
|
julee/domain/models/custom_fields/content_stream.py,sha256=DRpGjMSUuUwOzbJW-_pVy43IgvqQYn_Qi0612QJjlpY,2348
|
|
78
85
|
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=
|
|
86
|
+
julee/domain/models/custom_fields/tests/test_custom_fields.py,sha256=JRzrM12bF8dzJFH2lKLQwlJlW_t5E2yWfvRfH8kLVqw,1967
|
|
80
87
|
julee/domain/models/document/__init__.py,sha256=DJr8HKqB47AiJ5YIrTf3E-mpFYiKLLOZPEN8qcAJPWI,469
|
|
81
88
|
julee/domain/models/document/document.py,sha256=DgQNP_7alH3qHIhOS77Cx_JvTxZwTLtVuMrU4N5ztAU,5079
|
|
82
89
|
julee/domain/models/document/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
83
90
|
julee/domain/models/document/tests/factories.py,sha256=4sgVAOXInPO-RnT4ChO4zWWB0cAF9JFwYA50j692Ir0,2457
|
|
84
|
-
julee/domain/models/document/tests/test_document.py,sha256=
|
|
91
|
+
julee/domain/models/document/tests/test_document.py,sha256=rEdVz2tPdpB_kVRs-O968fnlHXfCc-FeIoS42IemAyg,9124
|
|
85
92
|
julee/domain/models/knowledge_service_config/__init__.py,sha256=5qYB-nGcVp6CIP7V85hzsQqvBg3HAq5H_p9hPQ5YqGM,431
|
|
86
93
|
julee/domain/models/knowledge_service_config/knowledge_service_config.py,sha256=WAoFtVv60leuWu0pyZrjy46tFD89lCcEHRMshSLnuBU,2945
|
|
87
94
|
julee/domain/models/policy/__init__.py,sha256=jsmjUb1QHD8T5X1Ri_wJkAQTaRig4B997yb6_ll2uC0,283
|
|
@@ -89,8 +96,8 @@ julee/domain/models/policy/document_policy_validation.py,sha256=uc9Y3yvz8wof6tit
|
|
|
89
96
|
julee/domain/models/policy/policy.py,sha256=hqSJg3CzKnfcKkVRHfbEJUEvnnGqNNytAVozOXN4teA,7036
|
|
90
97
|
julee/domain/models/policy/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
91
98
|
julee/domain/models/policy/tests/factories.py,sha256=b8stP-3ovjgckGzaKTpGY2XrfvzgoKq97ru8aCB02so,1300
|
|
92
|
-
julee/domain/models/policy/tests/test_document_policy_validation.py,sha256=
|
|
93
|
-
julee/domain/models/policy/tests/test_policy.py,sha256=
|
|
99
|
+
julee/domain/models/policy/tests/test_document_policy_validation.py,sha256=ypY9tadYNoUN7m6jLs308aPNvJXtR896bCsovPkkIZo,15919
|
|
100
|
+
julee/domain/models/policy/tests/test_policy.py,sha256=aoJ2sHXA1wzeUjxUwx_8Cm2I4OOGgenz0TZmP6Ie2e4,20429
|
|
94
101
|
julee/domain/repositories/__init__.py,sha256=mRJ6MuktqbV93tLrtpBBoP1uPwXe8krqBQjxAgsU0B8,949
|
|
95
102
|
julee/domain/repositories/assembly.py,sha256=4LWo3LcyheuNkZ4U8oV6NAXEcFHxkE46Oa2a97YMMiE,1686
|
|
96
103
|
julee/domain/repositories/assembly_specification.py,sha256=XLxH1lPgr6LJiSyVdB3eZU7Kdr1UVwSvsoXroBMdxKI,2070
|
|
@@ -106,14 +113,14 @@ julee/domain/use_cases/extract_assemble_data.py,sha256=D7w63bR-3WXpwDaj2SH_L4ZO-
|
|
|
106
113
|
julee/domain/use_cases/initialize_system_data.py,sha256=CIYasO96HQMKXh098Gw3r2rerPKsVXRRVLsxnSJnVfo,31330
|
|
107
114
|
julee/domain/use_cases/validate_document.py,sha256=noLzQp4hSJVAr-hL668ywxe4m7aNv2yuBMZzPgJPpIs,28219
|
|
108
115
|
julee/domain/use_cases/tests/__init__.py,sha256=xKgoU78i5zK5mlZ2NNfp8nhbnb9fIcNwCTcQD0j9gEw,199
|
|
109
|
-
julee/domain/use_cases/tests/test_extract_assemble_data.py,sha256=
|
|
110
|
-
julee/domain/use_cases/tests/test_initialize_system_data.py,sha256=
|
|
111
|
-
julee/domain/use_cases/tests/test_validate_document.py,sha256=
|
|
116
|
+
julee/domain/use_cases/tests/test_extract_assemble_data.py,sha256=erhTWfHx-FnoFVL1Kg8aT6hM4bd7-ewyuQwB_8f17T4,21627
|
|
117
|
+
julee/domain/use_cases/tests/test_initialize_system_data.py,sha256=1IyjuNPMBdnqCqn425vQpHrpVFJtvi_6N3hC6i2LoFE,17949
|
|
118
|
+
julee/domain/use_cases/tests/test_validate_document.py,sha256=JVMx3pXUbzYMLnT3Ah3UnCN8TUzEFzBv_D-QuKGelcw,50953
|
|
112
119
|
julee/fixtures/documents.yaml,sha256=QMPbdMtjvsf08iFuNa4U2Kx7nTIGVpeRMlp-eeW9dY0,4918
|
|
113
120
|
julee/fixtures/knowledge_service_configs.yaml,sha256=SfJO1SJFzYtF2Y7XTZmhl3d9Eiv2-xMrHKW1kI7NhI0,1378
|
|
114
121
|
julee/fixtures/knowledge_service_queries.yaml,sha256=uYKD24jMIBhHjGaItyDVqtRlHLVeIRCw8XfhNjiMENk,2447
|
|
115
122
|
julee/maintenance/__init__.py,sha256=tThzvZBQ4bTSiXVfLVuHI2uLQOhZRMfND1ndj26BNu0,65
|
|
116
|
-
julee/maintenance/release.py,sha256=
|
|
123
|
+
julee/maintenance/release.py,sha256=DavyBtyFb-hngtg8K36LjNx76DfrPDgFUbZePDW2lhk,7733
|
|
117
124
|
julee/repositories/__init__.py,sha256=mJpDFYP5f4LBhavYSnC3SnTcWnozMCz7aXje4iB5pyU,571
|
|
118
125
|
julee/repositories/memory/__init__.py,sha256=w0ibQfMm3HYdFhLXXMPa_aRtbRiG60j2bqmEGdjmOtg,1225
|
|
119
126
|
julee/repositories/memory/assembly.py,sha256=1XuLtNiVKVg8jqwHxzQPJS-YmLGR0PtTiD_XhoPSUSo,2807
|
|
@@ -125,9 +132,9 @@ julee/repositories/memory/knowledge_service_config.py,sha256=sG7bHAO2O131k7GD-8R
|
|
|
125
132
|
julee/repositories/memory/knowledge_service_query.py,sha256=0rav6H4caKw-CGM4gsjcwsFba2vjLGJbg7WYg9eB7-Y,3939
|
|
126
133
|
julee/repositories/memory/policy.py,sha256=UjLCqm4V2hiF5kF2H_5IonNb4jXAQcdJ57jouMWjYns,2874
|
|
127
134
|
julee/repositories/memory/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
128
|
-
julee/repositories/memory/tests/test_document.py,sha256=
|
|
129
|
-
julee/repositories/memory/tests/test_document_policy_validation.py,sha256=
|
|
130
|
-
julee/repositories/memory/tests/test_policy.py,sha256=
|
|
135
|
+
julee/repositories/memory/tests/test_document.py,sha256=TmA7v12kLPy9of6YqumIoRr6JEYoajMJedjLGH0G9QY,7824
|
|
136
|
+
julee/repositories/memory/tests/test_document_policy_validation.py,sha256=BpE3GOzMX1FtsIgfCElVWRYqb40iR605ohKBzjmBQYo,6241
|
|
137
|
+
julee/repositories/memory/tests/test_policy.py,sha256=awA7ItCmkllTDqCoqu3nnzxvdRNzA2wmYIUfdnh76yc,15871
|
|
131
138
|
julee/repositories/minio/__init__.py,sha256=KiDxZUJ2Cvq9sD8TM2_SO50uDSsRq7g4cKTbDmYHHxI,1211
|
|
132
139
|
julee/repositories/minio/assembly.py,sha256=X3KPgzCEH8Z9kaQN2ANYughPPyF8InBV8-fSM7LSA2s,3724
|
|
133
140
|
julee/repositories/minio/assembly_specification.py,sha256=dnnxxyXteaPjWxsndoo6UIXqjiYmOKI5thMzhQP5ZWo,6393
|
|
@@ -139,14 +146,14 @@ julee/repositories/minio/knowledge_service_query.py,sha256=nSH-UBt_42OgWokEKwpIh
|
|
|
139
146
|
julee/repositories/minio/policy.py,sha256=HGUcxlKkIAwOOnoFUMnpW0qMx_F3vCTvYrdWQ_I6M7M,3870
|
|
140
147
|
julee/repositories/minio/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
141
148
|
julee/repositories/minio/tests/fake_client.py,sha256=qyV6ApmVm54e3hPZganteE5n2wavOnnleE8Bs_uELJo,7377
|
|
142
|
-
julee/repositories/minio/tests/test_assembly.py,sha256=
|
|
143
|
-
julee/repositories/minio/tests/test_assembly_specification.py,sha256=
|
|
144
|
-
julee/repositories/minio/tests/test_client_protocol.py,sha256=
|
|
145
|
-
julee/repositories/minio/tests/test_document.py,sha256=
|
|
146
|
-
julee/repositories/minio/tests/test_document_policy_validation.py,sha256=
|
|
147
|
-
julee/repositories/minio/tests/test_knowledge_service_config.py,sha256=
|
|
148
|
-
julee/repositories/minio/tests/test_knowledge_service_query.py,sha256=
|
|
149
|
-
julee/repositories/minio/tests/test_policy.py,sha256=
|
|
149
|
+
julee/repositories/minio/tests/test_assembly.py,sha256=phoU_dEMhkrNUybnj93x5g4FlleJPl9ul0S2UIOxy8U,13824
|
|
150
|
+
julee/repositories/minio/tests/test_assembly_specification.py,sha256=zihcFt5u7Bv_hDr6XS5721jLsscCJPRWppoBum4OrdE,15271
|
|
151
|
+
julee/repositories/minio/tests/test_client_protocol.py,sha256=k_X6VW26APahRjwqicGY1AdonT8BwyONFZC_Hq8tm0I,2355
|
|
152
|
+
julee/repositories/minio/tests/test_document.py,sha256=qTEvR3d8PCY4RPF5KGmy7PpJsqikujLxNJml8dCg6Zo,22208
|
|
153
|
+
julee/repositories/minio/tests/test_document_policy_validation.py,sha256=GvEMwtzYGwd919yquWTDvYLbRhtNnUdJQoLiUIDbG38,7573
|
|
154
|
+
julee/repositories/minio/tests/test_knowledge_service_config.py,sha256=B73ZoPqR1MCG7_lz838ru2GHrNsaY7JD_7IL049gKH8,14854
|
|
155
|
+
julee/repositories/minio/tests/test_knowledge_service_query.py,sha256=0IQVHjUMUYHjMF4Jy34pjr2nKuHZk-FjcSuc7GJ4QUY,15362
|
|
156
|
+
julee/repositories/minio/tests/test_policy.py,sha256=yju3L_pzoHC5EWX3CLrKBkgZEZS2OazxnApV7ziDDjw,20510
|
|
150
157
|
julee/repositories/temporal/__init__.py,sha256=DPXfhTFFrixbi5GIKs_-emWu1SbD3oqjGlfSXche3rQ,1416
|
|
151
158
|
julee/repositories/temporal/activities.py,sha256=xDd6SRR_TNxLHb5TYnfAwsWlWgYrtD0vDvV8HqX1Ebo,3716
|
|
152
159
|
julee/repositories/temporal/activity_names.py,sha256=qg0ZJvnMPaTHHnu9fHxzsDTjUb5viNATbMTL3Xg0A_c,1464
|
|
@@ -155,13 +162,13 @@ julee/services/__init__.py,sha256=LNoQvHMWQi1YMQW0xWw9KeTHOVMsYdhLj-nvu4HClFU,56
|
|
|
155
162
|
julee/services/knowledge_service/__init__.py,sha256=xsrMieT-IezlINBEAkM9KAMy5ZDODQqDtbqpK8DMhXM,1148
|
|
156
163
|
julee/services/knowledge_service/factory.py,sha256=gLRkbrmALuL7rqsuaqWJqHm6TllgsbYCe0RrvDIBfYE,4605
|
|
157
164
|
julee/services/knowledge_service/knowledge_service.py,sha256=-CT_bAPi6oZm_TB7hVh5E6Q2EWAC9kFWvLfWGhR8h2M,6384
|
|
158
|
-
julee/services/knowledge_service/test_factory.py,sha256=
|
|
165
|
+
julee/services/knowledge_service/test_factory.py,sha256=FKuzOooeNKdbJU6S-LmqT6Q6ZYo_6sVAV7MUVQKBCLI,3956
|
|
159
166
|
julee/services/knowledge_service/anthropic/__init__.py,sha256=eO_85w4dd9hgzcnsqMoE0bvcjBtTuIhyQ0vqdPHdoQ4,297
|
|
160
167
|
julee/services/knowledge_service/anthropic/knowledge_service.py,sha256=WtpQl9QTvNo6mAS7A-L18FHddJ7eF8BVYMIopEZdnVQ,11918
|
|
161
|
-
julee/services/knowledge_service/anthropic/tests/test_knowledge_service.py,sha256=
|
|
168
|
+
julee/services/knowledge_service/anthropic/tests/test_knowledge_service.py,sha256=hN2W-0XL2cPFOyuib6tLvvA7S0YaK-2C4yNfhKG8ahw,12941
|
|
162
169
|
julee/services/knowledge_service/memory/__init__.py,sha256=QgAw_Bt3ctn2S2c2OeTwOSADqEx-UIsG1dnoyITifW0,364
|
|
163
170
|
julee/services/knowledge_service/memory/knowledge_service.py,sha256=HATVCtJATkYAcZ_t13fSVrGtxeJZUZjlN1C4iMVPjEY,9954
|
|
164
|
-
julee/services/knowledge_service/memory/test_knowledge_service.py,sha256=
|
|
171
|
+
julee/services/knowledge_service/memory/test_knowledge_service.py,sha256=0mFSmJtGjTulQgl0s10ior2R3SWVzQLU0hzkjQ1eSxw,13004
|
|
165
172
|
julee/services/temporal/__init__.py,sha256=xPfg55wTler89fH4NbAt7uawGOJlz8vQiKJzi7ONAHM,1376
|
|
166
173
|
julee/services/temporal/activities.py,sha256=UhXDt50tJbaKQ6n1BpQWs3lUBY9UuTdhS0hiov2k5-w,3319
|
|
167
174
|
julee/services/temporal/activity_names.py,sha256=OG0XqCLt40m8h7nglV-k6K5Oyk9bUexND9M1OJ2zfoo,817
|
|
@@ -182,15 +189,15 @@ julee/util/temporal/__init__.py,sha256=86xXEL8K5NAhT4s2H1uov8jV68NLkJiCZl2GDJaLn
|
|
|
182
189
|
julee/util/temporal/activities.py,sha256=j-xV12x-5KJQWT1I8_KhIWtPVYysLJo9A2Xwx4e31bc,4383
|
|
183
190
|
julee/util/temporal/decorators.py,sha256=MJzQcp7jD6jAzcwE-o3uKpIZy5r0H5I6hn72fBtHbic,17984
|
|
184
191
|
julee/util/tests/__init__.py,sha256=guP9qBQwD15l3fIX1kYS8v67pKHAHOCCqib9Us_eJ1Y,61
|
|
185
|
-
julee/util/tests/test_decorators.py,sha256=
|
|
192
|
+
julee/util/tests/test_decorators.py,sha256=FXyJRHETk4C6zv-STdvaVfJy4Fz6zgxkbm2HOaj0NoA,27456
|
|
186
193
|
julee/util/validation/__init__.py,sha256=Jp8A3iXEvLRaj07Z2UPnOBVO2QAUOW5ITCwMdLAgQyw,769
|
|
187
194
|
julee/util/validation/repository.py,sha256=li0bLav8ZpRqPe7aaOaZQQItdf_Ll-ZWJs7NpF8nmm0,3135
|
|
188
195
|
julee/util/validation/type_guards.py,sha256=sH9NfnrWAOQnLKQQNpJRdz1ygkt5nTUmKyjVDOE8iME,12548
|
|
189
196
|
julee/workflows/__init__.py,sha256=sHXZm4EPvsch6IYcJGqGuPJIep8XZQ8XvEju5b34tTs,724
|
|
190
197
|
julee/workflows/extract_assemble.py,sha256=ZldmLdwwn1LomDJg4gNGYrnY87tiXtU8em3-l_fqLGs,7876
|
|
191
198
|
julee/workflows/validate_document.py,sha256=Cwl-XgcQWeVCC-cGOAslS1vCjQosiWUi79c2uQfTYNc,8230
|
|
192
|
-
julee-0.1.
|
|
193
|
-
julee-0.1.
|
|
194
|
-
julee-0.1.
|
|
195
|
-
julee-0.1.
|
|
196
|
-
julee-0.1.
|
|
199
|
+
julee-0.1.5.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
200
|
+
julee-0.1.5.dist-info/METADATA,sha256=CkArVT-ZDglaWu_XsOLdAlvsY7RFXoVGYebj0GlYZsI,4409
|
|
201
|
+
julee-0.1.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
202
|
+
julee-0.1.5.dist-info/top_level.txt,sha256=woyPXhn9n-aM3oekZ341P1enrjj6nIcTwOxQL32VCLc,6
|
|
203
|
+
julee-0.1.5.dist-info/RECORD,,
|
julee-0.1.4.dist-info/METADATA
DELETED
|
@@ -1,197 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: julee
|
|
3
|
-
Version: 0.1.4
|
|
4
|
-
Summary: Julee - Clean architecture for accountable and transparent digital supply chains
|
|
5
|
-
Author-email: Pyx Industries <chris@pyx.io>
|
|
6
|
-
License: GPL-3.0
|
|
7
|
-
Project-URL: Homepage, https://github.com/pyx-industries/julee
|
|
8
|
-
Project-URL: Repository, https://github.com/pyx-industries/julee
|
|
9
|
-
Project-URL: Documentation, https://github.com/pyx-industries/julee#readme
|
|
10
|
-
Project-URL: Issues, https://github.com/pyx-industries/julee/issues
|
|
11
|
-
Keywords: temporal,workflow,document-processing,ai,supply-chain
|
|
12
|
-
Classifier: Development Status :: 3 - Alpha
|
|
13
|
-
Classifier: Intended Audience :: Developers
|
|
14
|
-
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
|
|
15
|
-
Classifier: Programming Language :: Python :: 3
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
-
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
19
|
-
Requires-Python: >=3.11
|
|
20
|
-
Description-Content-Type: text/markdown
|
|
21
|
-
License-File: LICENSE
|
|
22
|
-
Requires-Dist: fastapi>=0.100.0
|
|
23
|
-
Requires-Dist: uvicorn>=0.20.0
|
|
24
|
-
Requires-Dist: python-multipart
|
|
25
|
-
Requires-Dist: fastapi-pagination>=0.12.0
|
|
26
|
-
Requires-Dist: pydantic>=2.0.0
|
|
27
|
-
Requires-Dist: temporalio[pydantic]>=1.3.0
|
|
28
|
-
Requires-Dist: minio>=7.0.0
|
|
29
|
-
Requires-Dist: anthropic>=0.66.0
|
|
30
|
-
Requires-Dist: click>=0.8.0
|
|
31
|
-
Requires-Dist: Jinja2>=3.0.0
|
|
32
|
-
Requires-Dist: PyYAML>=6.0.0
|
|
33
|
-
Requires-Dist: python-magic>=0.4.27
|
|
34
|
-
Requires-Dist: multihash>=0.1.1
|
|
35
|
-
Requires-Dist: six>=1.16.0
|
|
36
|
-
Requires-Dist: jsonschema>=4.0.0
|
|
37
|
-
Requires-Dist: jsonpointer>=3.0.0
|
|
38
|
-
Provides-Extra: dev
|
|
39
|
-
Requires-Dist: pytest>=8.0.0; extra == "dev"
|
|
40
|
-
Requires-Dist: pytest-asyncio>=1.0.0; extra == "dev"
|
|
41
|
-
Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
|
|
42
|
-
Requires-Dist: hypothesis>=6.0.0; extra == "dev"
|
|
43
|
-
Requires-Dist: factory-boy>=3.2.0; extra == "dev"
|
|
44
|
-
Requires-Dist: mypy>=1.7.0; extra == "dev"
|
|
45
|
-
Requires-Dist: types-PyYAML; extra == "dev"
|
|
46
|
-
Requires-Dist: types-jsonschema; extra == "dev"
|
|
47
|
-
Requires-Dist: types-python-dateutil; extra == "dev"
|
|
48
|
-
Requires-Dist: black>=24.0.0; extra == "dev"
|
|
49
|
-
Requires-Dist: ruff>=0.5.0; extra == "dev"
|
|
50
|
-
Requires-Dist: pre-commit>=3.0.0; extra == "dev"
|
|
51
|
-
Requires-Dist: bandit; extra == "dev"
|
|
52
|
-
Requires-Dist: pip-tools>=7.0.0; extra == "dev"
|
|
53
|
-
Requires-Dist: asyncpg; extra == "dev"
|
|
54
|
-
Provides-Extra: docs
|
|
55
|
-
Requires-Dist: sphinx>=7.0.0; extra == "docs"
|
|
56
|
-
Requires-Dist: sphinx-autobuild>=2021.3.14; extra == "docs"
|
|
57
|
-
Requires-Dist: sphinx-rtd-theme>=2.0.0; extra == "docs"
|
|
58
|
-
Requires-Dist: furo>=2023.9.10; extra == "docs"
|
|
59
|
-
Requires-Dist: sphinx-autodoc-typehints>=1.25.0; extra == "docs"
|
|
60
|
-
Requires-Dist: sphinxcontrib-mermaid>=0.9.2; extra == "docs"
|
|
61
|
-
Requires-Dist: sphinxcontrib-plantuml>=0.25; extra == "docs"
|
|
62
|
-
Requires-Dist: sphinx-autoapi>=3.0.0; extra == "docs"
|
|
63
|
-
Dynamic: license-file
|
|
64
|
-
|
|
65
|
-
# Julee Example - Docker Setup Guide
|
|
66
|
-
|
|
67
|
-
This guide explains how to set up and run the Julee Example application using Docker Compose.
|
|
68
|
-
|
|
69
|
-
## Prerequisites
|
|
70
|
-
|
|
71
|
-
- Docker and Docker Compose installed
|
|
72
|
-
- API keys for external services
|
|
73
|
-
|
|
74
|
-
## Quick Start
|
|
75
|
-
|
|
76
|
-
1. **Set up environment variables**:
|
|
77
|
-
```bash
|
|
78
|
-
cp .env.example .env
|
|
79
|
-
```
|
|
80
|
-
Edit `.env` and add your API keys:
|
|
81
|
-
```bash
|
|
82
|
-
ANTHROPIC_API_KEY=your_anthropic_api_key_here
|
|
83
|
-
GEMINI_API_KEY=your_gemini_api_key_here
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
2. **Run the application**:
|
|
87
|
-
```bash
|
|
88
|
-
docker compose up --build -d
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
3. **Access the services**:
|
|
92
|
-
- **Web UI**: http://localhost:3000
|
|
93
|
-
- **API**: http://localhost:8000
|
|
94
|
-
- **API Docs**: http://localhost:8000/docs
|
|
95
|
-
- **Temporal UI**: http://localhost:8001 (linked in the UI)
|
|
96
|
-
- **MinIO Console**: http://localhost:9001
|
|
97
|
-
|
|
98
|
-
### Building and Running
|
|
99
|
-
|
|
100
|
-
```bash
|
|
101
|
-
# Start in background
|
|
102
|
-
docker compose up -d --build
|
|
103
|
-
|
|
104
|
-
# View logs
|
|
105
|
-
docker compose logs -f
|
|
106
|
-
|
|
107
|
-
# Stop all services
|
|
108
|
-
docker compose down
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
## Demo Features
|
|
112
|
-
|
|
113
|
-
The application includes pre-loaded demo data:
|
|
114
|
-
|
|
115
|
-
- **Knowledge Services**: Anthropic Claude configurations
|
|
116
|
-
- **Queries**: Meeting extraction queries (info, agenda, actions)
|
|
117
|
-
- **Assembly Specs**: Meeting minutes specification
|
|
118
|
-
- **Documents**: Sample meeting transcripts
|
|
119
|
-
|
|
120
|
-
### Using the Demo
|
|
121
|
-
|
|
122
|
-
1. Navigate to **Specifications** in the UI
|
|
123
|
-
2. Click **"Run Assembly"** on the Meeting Minutes specification
|
|
124
|
-
3. Select a document from the dropdown
|
|
125
|
-
4. Click **"Start Assembly"** to trigger the workflow
|
|
126
|
-
5. Monitor progress in the Temporal UI (Click on the Workflows option)
|
|
127
|
-
|
|
128
|
-
## Current Limitations
|
|
129
|
-
|
|
130
|
-
### Cannot view assembled document output in UI
|
|
131
|
-
|
|
132
|
-
The current interface doesn't provide a way to view the final assembled document that results from running the workflow. To view the assembled content, you need to use the API directly with the document ID that's returned when the workflow completes successfully.
|
|
133
|
-
|
|
134
|
-
**API commands to view assembled document:**
|
|
135
|
-
|
|
136
|
-
```bash
|
|
137
|
-
# curl command
|
|
138
|
-
curl -X GET "http://localhost:8000/documents/doc-68f2047f-6796-4830-91ad-104da83f6f24/content"
|
|
139
|
-
|
|
140
|
-
# HTTPie command
|
|
141
|
-
http GET http://localhost:8000/documents/doc-68f2047f-6796-4830-91ad-104da83f6f24/content
|
|
142
|
-
|
|
143
|
-
# With JSON formatting
|
|
144
|
-
curl -X GET "http://localhost:8000/documents/doc-68f2047f-6796-4830-91ad-104da83f6f24/content" \
|
|
145
|
-
-H "Accept: application/json" | jq .
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
Replace the document ID with the one returned from your workflow execution.
|
|
149
|
-
|
|
150
|
-
## Troubleshooting
|
|
151
|
-
|
|
152
|
-
### Common Issues
|
|
153
|
-
|
|
154
|
-
**Services fail to start:**
|
|
155
|
-
- Check Docker daemon is running
|
|
156
|
-
- Verify port availability (3000, 8000, 8001, 9000, 9001)
|
|
157
|
-
- Ensure API keys are set correctly
|
|
158
|
-
|
|
159
|
-
**API key errors:**
|
|
160
|
-
- Verify keys are valid and active
|
|
161
|
-
- Check .env file is in the correct location
|
|
162
|
-
- Restart services after updating environment variables
|
|
163
|
-
|
|
164
|
-
**Build failures:**
|
|
165
|
-
- Clear Docker cache: `docker system prune -f`
|
|
166
|
-
- Rebuild without cache: `docker compose build --no-cache`
|
|
167
|
-
|
|
168
|
-
### Database and Storage
|
|
169
|
-
|
|
170
|
-
**Reset data:**
|
|
171
|
-
```bash
|
|
172
|
-
# Stop services and remove volumes
|
|
173
|
-
docker compose down -v
|
|
174
|
-
|
|
175
|
-
# Restart with fresh data
|
|
176
|
-
docker compose up --build
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
**Access MinIO Console:**
|
|
180
|
-
- URL: http://localhost:9001
|
|
181
|
-
- Username: `minioadmin`
|
|
182
|
-
- Password: `minioadmin`
|
|
183
|
-
|
|
184
|
-
## Architecture
|
|
185
|
-
|
|
186
|
-
```
|
|
187
|
-
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
|
|
188
|
-
│ React UI │────│ FastAPI │────│ Temporal │
|
|
189
|
-
│ (vite:3000) │ │ (uvicorn:8000)│ │ Worker │
|
|
190
|
-
└─────────────────┘ └─────────────────┘ └─────────────────┘
|
|
191
|
-
│ │
|
|
192
|
-
│ │
|
|
193
|
-
┌─────────────────┐ ┌─────────────────┐
|
|
194
|
-
│ MinIO │ │ PostgreSQL │
|
|
195
|
-
│ (storage) │ │ (temporal) │
|
|
196
|
-
└─────────────────┘ └─────────────────┘
|
|
197
|
-
```
|
|
File without changes
|
|
File without changes
|
|
File without changes
|